在 aurelia i18N 中使用多个翻译文件
using multiple translation files in aurelia i18N
我有一个使用 aurelia-i18n 的应用程序。我想将 translation.json 文件拆分成多个文件,例如 nav.json、message.json 等,但我不确定该怎么做。
这就是它现在的样子。
locale
|-en
|- translation.json
但是我想改成这样。
locale
|-en
|- nav.json
|- message.json
可以吗?如果是这样,我该如何配置它并访问每个文件中的值?
您可以有多个资源文件,这些在 i18next library (by default you only have one namespace which is called: translation
) which is used by aurelia i18N.
中称为 namespaces
在使用 ns
选项中的 namespaces
和 defaultNs
属性配置插件时,您只需要列出您的命名空间:
.plugin('aurelia-i18n', (instance) => {
// adapt options to your needs (see http://i18next.com/pages/doc_init.html)
instance.setup({
resGetPath : 'locale/__lng__/__ns__.json',
lng : 'de',
attributes : ['t','i18n'],
ns: {
namespaces: ['nav', 'message'],
defaultNs: 'message'
},
getAsync : true,
sendMissing : false,
fallbackLng : 'en',
debug : false
});
});
另见 documentation of i18next and this related github issue: Using namespaces
我有一个使用 aurelia-i18n 的应用程序。我想将 translation.json 文件拆分成多个文件,例如 nav.json、message.json 等,但我不确定该怎么做。
这就是它现在的样子。
locale
|-en
|- translation.json
但是我想改成这样。
locale
|-en
|- nav.json
|- message.json
可以吗?如果是这样,我该如何配置它并访问每个文件中的值?
您可以有多个资源文件,这些在 i18next library (by default you only have one namespace which is called: translation
) which is used by aurelia i18N.
在使用 ns
选项中的 namespaces
和 defaultNs
属性配置插件时,您只需要列出您的命名空间:
.plugin('aurelia-i18n', (instance) => {
// adapt options to your needs (see http://i18next.com/pages/doc_init.html)
instance.setup({
resGetPath : 'locale/__lng__/__ns__.json',
lng : 'de',
attributes : ['t','i18n'],
ns: {
namespaces: ['nav', 'message'],
defaultNs: 'message'
},
getAsync : true,
sendMissing : false,
fallbackLng : 'en',
debug : false
});
});
另见 documentation of i18next and this related github issue: Using namespaces