summary refs log tree commit diff
path: root/src/api/middlewares/Translation.ts
diff options
context:
space:
mode:
authorMadeline <46743919+MaddyUnderStars@users.noreply.github.com>2022-08-30 15:13:18 +1000
committerMadeline <46743919+MaddyUnderStars@users.noreply.github.com>2022-08-30 15:13:18 +1000
commitc2931f61aa0adb682ab023d85ba599099024d62b (patch)
tree86de9071cbded565fe9e082bd2cc6c611a926c6c /src/api/middlewares/Translation.ts
parentGuild join messages (diff)
parentOop, deprecated typeorm call (diff)
downloadserver-c2931f61aa0adb682ab023d85ba599099024d62b.tar.xz
Merge branch 'staging' into dev/Maddy/feat/welcomeMessages
Diffstat (limited to 'src/api/middlewares/Translation.ts')
-rw-r--r--src/api/middlewares/Translation.ts28
1 files changed, 28 insertions, 0 deletions
diff --git a/src/api/middlewares/Translation.ts b/src/api/middlewares/Translation.ts
new file mode 100644

index 00000000..8e5e67e6 --- /dev/null +++ b/src/api/middlewares/Translation.ts
@@ -0,0 +1,28 @@ +import { Router } from "express"; +import fs from "fs"; +import i18next from "i18next"; +import i18nextMiddleware from "i18next-http-middleware"; +import i18nextBackend from "i18next-node-fs-backend"; +import path from "path"; + +export async function initTranslation(router: Router) { + const languages = fs.readdirSync(path.join(__dirname, "..", "..", "..", "assets", "locales")); + const namespaces = fs.readdirSync(path.join(__dirname, "..", "..", "..", "assets", "locales", "en")); + const ns = namespaces.filter((x) => x.endsWith(".json")).map((x) => x.slice(0, x.length - 5)); + + await i18next + .use(i18nextBackend) + .use(i18nextMiddleware.LanguageDetector) + .init({ + preload: languages, + // debug: true, + fallbackLng: "en", + ns, + backend: { + loadPath: __dirname + "/../../../assets/locales/{{lng}}/{{ns}}.json" + }, + load: "all" + }); + + router.use(i18nextMiddleware.handle(i18next, {})); +}