如何使用 i18next 更好地组织多个命名空间

How to better organize multiple namespaces using i18next

我有多个命名空间和多个不同的语言文件,但我们可能有更多,而且会非常大,我想知道是否有更简单或组织更好的方式。目前,我从每种语言导入每个名称空间,所以我这样导入它们:

// auth
import auth_de from './de/auth.json';
import auth_en from './en/auth.json';
import auth_es from './es/auth.json';
import auth_fr from './fr/auth.json';
import auth_it from './it/auth.json';
import auth_pt from './pt/auth.json';
import auth_zh from './zh/auth.json';
// global
import global_de from './de/global.json';
import global_en from './en/global.json';
import global_es from './es/global.json';
import global_fr from './fr/global.json';
import global_it from './it/global.json';
import global_pt from './pt/global.json';
import global_zh from './zh/global.json';

然后我为每种语言创建资源文件:

const resources = {
  de: {
    auth: auth_de,
    global: global_de,
  },
  en: {
    auth: auth_en,
    global: global_en,
  },
  es: {
    auth: auth_es,
    global: global_es,
  },
  fr: {
    auth: auth_fr,
    global: global_fr,
  },
  it: {
    auth: auth_it,
    global: global_it,
  },
  pt: {
    auth: auth_pt,
    global: global_pt,
  },
  zh: {
    auth: auth_zh,
    global: global_zh,
  },
};

在这个例子中,我有 7 种语言和 2 个命名空间,但我们将来可能会有更多的语言,但我们肯定会有更多的命名空间,我猜大约有 15 个,所以这个文件会非常大大,有没有更好的组织方式?

就我个人而言,我会 lazy load the translations with a backend plugin like i18next-http-backend (or i18next-locize-backend)?

有一个很好的 React 指南,展示了如何将翻译与代码分开并延迟加载它们,here. And the usage on how to use multiple namespaces 使用 react-i18next。