我正在 Aurelia 中开展一个项目并使用 aurelia-i18n 插件。 到目前为止,它看起来很棒,翻译正在工作,并且当我更改区域设置时会立即更新界面语言。
问题:与单个翻译文件相比,使用多个翻译文件是否具有逻辑、组织或性能优势? 例如:
我应该将所有内容放入一个文件中吗?
my-aurelia/locales/en/translation.json
my-aurelia/locales/es/translation.json
或者我应该分成多个翻译文件吗?
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
这是我实例化此示例插件的方法(在
my-aurelia/src/main.js的
export 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
});
});
一个json语言文件还是多个json语言文件? 还有其他建议吗?
在性能方面,每种语言的单个文件在初始加载时会稍快一些,因为需要的请求较少。但是,这种微观优化可以忽略不计,您应该更加重视代码结构和可读性,特别是对于在您之后处理代码的其他人来说。
单个文件会变得太大,以至于人们很难找到正确的条目并更改 JSON 文件的内容吗?如果没有,并且您不希望它增长到这样的大小,您可能最好使用单个文件。
人们会想知道你是否将“Gracias/Thank You”放在单词(谢谢)或短语(谢谢)中?我建议使用对于不熟悉代码的人来说清晰的结构。
最后,我没有看到你提到过但我自己使用过的组织结构之一,就是根据你的观点来订购 i18n 文件。这使得您可以轻松找到需要更改的文件,因为您已经知道您正在使用哪个视图,因此您不必寻找 i18n。
如果我更改 en 中的 json 值,它也会反映在 es 中吗?