diff options
author | TheArcaneBrony <myrainbowdash949@gmail.com> | 2022-08-15 11:13:21 +0200 |
---|---|---|
committer | TheArcaneBrony <myrainbowdash949@gmail.com> | 2022-08-15 11:13:21 +0200 |
commit | 1a94fb1208bf0e4c669cad16aff5f57dc0bf7a3c (patch) | |
tree | 1035116ddbaacc5fcc5ae250a6592eb88f78f75c /src/api/middlewares/Translation.ts | |
parent | Do the funny thing (make user->invite cascade delet) (diff) | |
parent | change dev panel path, we missed this one... (diff) | |
download | server-1a94fb1208bf0e4c669cad16aff5f57dc0bf7a3c.tar.xz |
Merge branch 'dev/restructure' into staging
Diffstat (limited to 'src/api/middlewares/Translation.ts')
-rw-r--r-- | src/api/middlewares/Translation.ts | 28 |
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..64b03bf8 --- /dev/null +++ b/src/api/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, "..", "..", "..", "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, {})); +} |