+
+
+
+# @nezuchan/i18n
+
+**A i18n Language manager.**
+
+[![GitHub](https://img.shields.io/github/license/nezuchan/cordis-brokers)](https://github.com/nezuchan/cordis-brokers/blob/main/LICENSE)
+[![Discord](https://discordapp.com/api/guilds/785715968608567297/embed.png)](https://nezu.my.id)
+
+
diff --git a/package.json b/package.json
new file mode 100644
index 0000000..71efed4
--- /dev/null
+++ b/package.json
@@ -0,0 +1,58 @@
+{
+ "name": "@nezuchan/i18n",
+ "version": "1.0.0",
+ "description": "A i18n Language manager.",
+ "main": "dist/index.js",
+ "module": "dist/index.mjs",
+ "types": "dist/index.d.ts",
+ "exports": {
+ ".": {
+ "import": "./dist/index.mjs",
+ "require": "./dist/index.js"
+ }
+ },
+ "scripts": {
+ "test": "echo \"Error: no test specified\" && exit 1",
+ "lint": "eslint src --ext ts",
+ "lint:fix": "eslint src --fix --ext ts",
+ "build": "rimraf dist && tsup src && gen-esm-wrapper dist/index.js dist/index.mjs",
+ "prepare": "npm run build"
+ },
+ "author": "KagChi",
+ "license": "GPL-3.0",
+ "devDependencies": {
+ "@hazmi35/eslint-config": "^8.4.2",
+ "@swc/cli": "^0.1.57",
+ "@swc/core": "^1.2.208",
+ "@types/node": "^17.0.31",
+ "@typescript-eslint/eslint-plugin": "^5.30.4",
+ "@typescript-eslint/parser": "^5.30.4",
+ "eslint": "^8.19.0",
+ "gen-esm-wrapper": "^1.1.3",
+ "rimraf": "^3.0.2",
+ "tsup": "^6.1.3",
+ "typescript": "^4.7.4"
+ },
+ "eslintConfig": {
+ "parser": "@typescript-eslint/parser",
+ "plugins": [
+ "@typescript-eslint"
+ ],
+ "parserOptions": {
+ "project": "./tsconfig.json"
+ },
+ "extends": [
+ "eslint:recommended",
+ "plugin:@typescript-eslint/recommended",
+ "@hazmi35/eslint-config/typescript"
+ ],
+ "rules": {}
+ },
+ "dependencies": {
+ "@discordjs/collection": "^0.7.0",
+ "@sapphire/pieces": "^3.3.4",
+ "@sapphire/result": "^2.0.1",
+ "@skyra/i18next-backend": "^1.0.1",
+ "i18next": "^21.8.11"
+ }
+}
diff --git a/src/Structures/i18nManager.ts b/src/Structures/i18nManager.ts
new file mode 100644
index 0000000..40a614b
--- /dev/null
+++ b/src/Structures/i18nManager.ts
@@ -0,0 +1,83 @@
+import Collection from "@discordjs/collection";
+import { Backend, PathResolvable } from "@skyra/i18next-backend";
+import { opendir } from "node:fs/promises";
+import i18next, { InitOptions, TFunction } from "i18next";
+import { join } from "node:path";
+import { PathLike } from "node:fs";
+import { getRootData } from "@sapphire/pieces";
+
+export class i18nManager {
+ public namespaces = new Set