Browse Source

Merge pull request #8787 from weseek/fix/dynamic-import-locale-file

fix: Dynamic import the locale file
Yuki Takei 1 year ago
parent
commit
028974cb66
1 changed files with 7 additions and 1 deletions
  1. 7 1
      apps/app/src/server/service/i18next.ts

+ 7 - 1
apps/app/src/server/service/i18next.ts

@@ -1,3 +1,5 @@
+import path from 'path';
+
 import type { Lang } from '@growi/core';
 import type { TFunction, i18n } from 'i18next';
 import { createInstance } from 'i18next';
@@ -5,16 +7,20 @@ import resourcesToBackend from 'i18next-resources-to-backend';
 
 import { defaultLang, initOptions } from '^/config/i18next.config';
 
+import { resolveFromRoot } from '~/utils/project-dir-utils';
+
 import { configManager } from './config-manager';
 
 
+const relativePathToLocalesRoot = path.relative(__dirname, resolveFromRoot('public/static/locales'));
+
 const initI18next = async(lang: Lang = defaultLang) => {
   const i18nInstance = createInstance();
   await i18nInstance
     .use(
       resourcesToBackend(
         (language: string, namespace: string) => {
-          return import(`^/public/static/locales/${language}/${namespace}.json`);
+          return import(path.join(relativePathToLocalesRoot, language, `${namespace}.json`));
         },
       ),
     )