我在我的 ionic2 应用程序上使用 ng2-translate,我让它在 html 上的静态文本上运行良好,例如:
<ion-title>{{ 'Inventory.view-header' | translate }}</ion-title>
我翻译了这个标题,但是当我尝试翻译这个时:
<ion-item menuClose *ngFor="let p of pages" (click)="openPage(p)">
<ion-icon color="gray" name="{{p.icon}}" item-left></ion-icon>
{{p.title}}
</ion-item>
我无法使用翻译管道作为离子标题翻译 p.title。我只能通过以下方式做到这一点:
this.translate.onLangChange.subscribe((event: LangChangeEvent) => {
this.pages[0].title = event.translations.Menu.pantry;
this.pages[1].title = event.translations.Menu.inventory;
...
但我不想订阅我要翻译的每个 ngfor 或数组。还有另一种方法可以使这项工作吗?
我对 app.module 的配置:
import { TranslateStaticLoader, TranslateModule, TranslateLoader} from 'ng2-translate';
export function createTranslateLoader(http: Http) {
return new TranslateStaticLoader(http, './assets/i18n', '.json');
}
@NgModule({
declarations: [
MyApp,
...
],
imports: [
IonicModule.forRoot(MyApp),
TranslateModule.forRoot({
provide: TranslateLoader,
useFactory: (createTranslateLoader),
deps: [Http]
})
],
...