我的項目是使用Angular CLI設置的,因此它使用webpack構建,但webpack配置文件是隱藏的。未找到json語言文件ngx-translate angular-cli
我有兩個文件,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");
}
我還包括這些在我的子模塊,其中I [儘量]使用翻譯,其差異爲.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>
時,我從字面上得到字符串。