我想制作一个多语言的 angular 4 应用程序。我遵循了 Angular 2 - Multilingual Support 上的答案,但它不起作用。
我在该页面上执行了从 1 到 5 的每一步,我的应用程序模块看起来都一样。
我的 assets 文件夹中的 i18n 文件夹中有一个 en.json 文件。该文件包含
{ "TEST":"little test"}
在我的 HTML 中:
<a [routerLink]="['/home']" class="tile waves-effect waves-light btn-large">
<span> {{ "TEST" | translate }}</span>
</a>
当我使用它时,我得到的是 TEST 而不是 little test。这真的很烦人,因为我想添加多种语言。
编辑
我已将这段代码添加到我的 appmodule.ts (只添加必要的)
import {HttpClientModule, HttpClient} from '@angular/common/http';
import {TranslateModule, TranslateLoader} from '@ngx-translate/core';
import {TranslateHttpLoader} from '@ngx-translate/http-loader';
export function HttpLoaderFactory(http: HttpClient) {
return new TranslateHttpLoader(http);
}
@NgModule({
imports: [
BrowserModule,
HttpModule,
HttpClientModule,
MaterializeModule.forRoot(),
TranslateModule.forRoot({
loader: {
provide: TranslateLoader,
useFactory: HttpLoaderFactory,
deps: [HttpClient]
}
}),
FormsModule,
JsonpModule,
routing,
BrowserAnimationsModule,
],
原文由 fangio 发布,翻译遵循 CC BY-SA 4.0 许可协议
你能这样试试吗?
export function HttpLoaderFactory(http: Http) { return new TranslateHttpLoader(http, "./assets/i18n/", ".json"); }