我的项目是使用 Angular CLI 设置的,因此它是使用 webpack 构建的,但 webpack 配置文件是隐藏的。
我有两个文件,nl.json
和fr.json
,但404
两者都有一个,即使它看起来像是要进入正确的文件夹:http://localhost:4200/i18n/nl.json
.
他们有这样的结构:
{
"SEARCH_PAGE": {
"searchPerson": "Zoek een persoon",
"search": "Zoek"
}
}
在app.module
:
...
TranslateModule.forRoot({
loader: {
provide: TranslateLoader,
useFactory: HttpLoaderFactory,
deps: [Http]
}
}),
...
和
export function HttpLoaderFactory(http: Http) {
return new TranslateHttpLoader(http, "/i18n/", ".json");
}
我还将这些包含在我的子模块中,我 [尝试] 使用翻译,不同之处在于.forChild
而不是.forRoot
.
在我的组件中:
constructor(translate: TranslateService) {
translate.addLangs(["nl", "fr"]);
translate.setDefaultLang('nl'); // this language will be used as a fallback when a translation isn't found in the current language
let browserLang: string = translate.getBrowserLang();
translate.use(browserLang.match(/nl|fr/) ? browserLang : 'nl');
}
会不会是没有关联的东西ngx-translate
?当我使用管道<h1>{{ 'SEARCH_PAGE.searchPerson' | translate}}</h1>
时,屏幕上什么也没有,当我使用指令时,<h1 translate]="'SEARCH_PAGE.searchPerson'"></h1>
我得到字面上的字符串。