summary refs log tree commit diff
path: root/api/src/middlewares/Translation.ts
diff options
context:
space:
mode:
authorFlam3rboy <34555296+Flam3rboy@users.noreply.github.com>2021-08-13 20:53:50 +0200
committerFlam3rboy <34555296+Flam3rboy@users.noreply.github.com>2021-08-13 20:53:50 +0200
commit213b5811c49f30c8ff2b8a967ebd666adac6cb6f (patch)
tree2e5ab479447dfdcf669007322f57ac84b61a7527 /api/src/middlewares/Translation.ts
parent:pencil: updated links to fosscord-server (diff)
downloadserver-213b5811c49f30c8ff2b8a967ebd666adac6cb6f.tar.xz
:bug: fix api middleware
Diffstat (limited to '')
-rw-r--r--api/src/middlewares/Translation.ts28
1 files changed, 28 insertions, 0 deletions
diff --git a/api/src/middlewares/Translation.ts b/api/src/middlewares/Translation.ts
new file mode 100644

index 00000000..edc14707 --- /dev/null +++ b/api/src/middlewares/Translation.ts
@@ -0,0 +1,28 @@ +import fs from "fs"; +import path from "path"; +import i18next from "i18next"; +import i18nextMiddleware from "i18next-http-middleware"; +import i18nextBackend from "i18next-node-fs-backend"; +import { Router } from "express"; + +export async function initTranslation(router: Router) { + const languages = fs.readdirSync(path.join(__dirname, "..", "..", "locales")); + const namespaces = fs.readdirSync(path.join(__dirname, "..", "..", "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 + "/../locales/{{lng}}/{{ns}}.json" + }, + load: "all" + }); + + router.use(i18nextMiddleware.handle(i18next, {})); +}