i18n 的单个或多个 Translation.json 文件?

LSt*_*rky 1 internationalization aurelia

我正在 Aurelia 开展一个项目并使用 aurelia-i18n 插件。到目前为止,它看起来很棒,翻译正在工作,并且当我更改区域设置时会立即更新界面语言。

问题:与单个翻译文件相比,使用多个翻译文件是否具有逻辑、组织或性能优势?例如:

我应该将所有内容都放入一个文件中吗?

my-aurelia/locales/en/translation.json
my-aurelia/locales/es/translation.json
Run Code Online (Sandbox Code Playgroud)

或者我应该分成多个翻译文件?

my-aurelia/locales/en/nav.json
my-aurelia/locales/en/words.json
my-aurelia/locales/en/phrases.json

my-aurelia/locales/es/nav.json
my-aurelia/locales/es/words.json
my-aurelia/locales/es/phrases.json
Run Code Online (Sandbox Code Playgroud)

以下是我如何实例化此示例的插件(在my-aurelia/src/main.jsexport function configure(aurelia) {内 ,但我正处于一个重要的设计十字路口。

aurelia.use.plugin('aurelia-i18n', (instance) => {
    // register backend plugin
    instance.i18next.use(XHR);

    // adapt options to your needs (see http://i18next.com/docs/options/)
    instance.setup({
      backend: {                                  
        loadPath: '/locales/{{lng}}/{{ns}}.json',
      },
      lng : 'es',
      ns: ['words','phrases','nav'],
      defaultNS: 'words',
      attributes : ['t','i18n'],
      fallbackLng : 'en',
      debug : false
    });
  });
Run Code Online (Sandbox Code Playgroud)

一个json语言文件还是多个json语言文件?还有其他建议吗?

Dan*_*mps 6

从性能角度来看,每种语言的单个文件在初始加载时会稍快一些,因为所需的请求较少。但是,这种微观优化可以忽略不计,您应该更加重视代码结构和可读性,特别是对于在您之后处理代码的其他人来说。

单个文件是否会变得如此之大,以至于人们很难找到正确的条目并更改 JSON 文件的内容?如果没有,并且您不希望它增长到这样的大小,那么您最好使用单个文件。

人们会想知道你是否将“Gracias/Thank You”放在单词(谢谢)或短语(谢谢)中?我建议使用对于不熟悉代码的人来说清晰的结构。

最后,我没有看到你提到过但我自己使用过的组织结构之一,就是根据你的观点来排序 i18n 文件。这使得找到需要更改的文件变得很容易,因为您已经知道您正在使用哪个视图,因此您不必寻找 i18n。