i18n 想要加载一个未指定的翻译
i18n wants to load an unspecified translation
我目前正在从事 Aurelia 项目(Web 框架,如 Angular2)。
我遵循了他们 github account 上的指南,但遇到了问题。
首先,浏览器返回了这个错误:
GET http://localhost:9000/src/locale/nl/translation.json?_=1450946571510 404 (Not Found)
其次,我在我的申请中使用了两种语言:荷兰语 (nl-BE) 和法语 (fr-BE)。
我的文件夹结构如下:
src (inside root)
.. locale
..... fr-BE
........ translation.json
..... nl-BE
........ translation.json
这是我的完整 main.js 文件的样子:
import 'bootstrap';
import {I18N} from 'aurelia-i18n';
export function configure(aurelia) {
aurelia.use
.standardConfiguration()
.developmentLogging()
.globalResources('converters/dateFormat')
.plugin('components/index')
.plugin('plugins/index')
.plugin('aurelia-i18n', (instance) => {
instance.setup({
resGetPath: 'src/locale/__lng__/__ns__.json',
lng: 'nl-BE',
attributes: ['t', 'i18n'],
getAsync: true,
sendMissing: false,
fallbackLng: 'fr-BE',
debug: false
});
});
aurelia.start().then(a => a.setRoot());
}
我正在尝试设置一个 hello world,我的视图和视图模型设置如下:
import {inject} from 'aurelia-framework';
import {I18N} from 'aurelia-i18n';
@inject(I18N)
export class EntryDetails {
constructor(i18n){
this.i18n = i18n;
this.i18n.setLocale('nl-BE').then(() => console.log('test'));
}
}
而我的观点:
<template>
<span t="hello"></span> <span t="world"></span>
</template>
问题不在于它不起作用。问题是我收到一条错误消息,指出 locale
文件夹中缺少文件夹 nl
。但是我从来没有在任何地方指定过..
这就是 i18next 解析翻译文件的方式。
The lookup order for keys is always:
nl-BE language + country
nl language only
fallback thats defined in options.fallbackLng (en) (string or array of fallback language)
loaded resources:
locale/en/translation.json
locale/nl/translation.json
locale/nl-BE/translation.json
http://i18next.com/translate/#resolve
所以你需要有 nl/translation.json,即使它没有在配置中指定。它可以是空但有效的 json 文件,内容为 {}
我目前正在从事 Aurelia 项目(Web 框架,如 Angular2)。 我遵循了他们 github account 上的指南,但遇到了问题。
首先,浏览器返回了这个错误:
GET http://localhost:9000/src/locale/nl/translation.json?_=1450946571510 404 (Not Found)
其次,我在我的申请中使用了两种语言:荷兰语 (nl-BE) 和法语 (fr-BE)。
我的文件夹结构如下:
src (inside root)
.. locale
..... fr-BE
........ translation.json
..... nl-BE
........ translation.json
这是我的完整 main.js 文件的样子:
import 'bootstrap';
import {I18N} from 'aurelia-i18n';
export function configure(aurelia) {
aurelia.use
.standardConfiguration()
.developmentLogging()
.globalResources('converters/dateFormat')
.plugin('components/index')
.plugin('plugins/index')
.plugin('aurelia-i18n', (instance) => {
instance.setup({
resGetPath: 'src/locale/__lng__/__ns__.json',
lng: 'nl-BE',
attributes: ['t', 'i18n'],
getAsync: true,
sendMissing: false,
fallbackLng: 'fr-BE',
debug: false
});
});
aurelia.start().then(a => a.setRoot());
}
我正在尝试设置一个 hello world,我的视图和视图模型设置如下:
import {inject} from 'aurelia-framework';
import {I18N} from 'aurelia-i18n';
@inject(I18N)
export class EntryDetails {
constructor(i18n){
this.i18n = i18n;
this.i18n.setLocale('nl-BE').then(() => console.log('test'));
}
}
而我的观点:
<template>
<span t="hello"></span> <span t="world"></span>
</template>
问题不在于它不起作用。问题是我收到一条错误消息,指出 locale
文件夹中缺少文件夹 nl
。但是我从来没有在任何地方指定过..
这就是 i18next 解析翻译文件的方式。
The lookup order for keys is always:
nl-BE language + country
nl language only
fallback thats defined in options.fallbackLng (en) (string or array of fallback language)
loaded resources:
locale/en/translation.json
locale/nl/translation.json
locale/nl-BE/translation.json
http://i18next.com/translate/#resolve
所以你需要有 nl/translation.json,即使它没有在配置中指定。它可以是空但有效的 json 文件,内容为 {}