0

私の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>

翻訳パイプをion-titleとして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 の私の conf:

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] 
    })
  ],
  ...
4

2 に答える 2

1

あなたが言ったように、あなたのp.title値は のようなもので、以下のようにパイプを使用する必要があります:pantryinventorytranslate

<ion-item menuClose *ngFor="let p of pages" (click)="openPage(p)">
  <ion-icon color="gray" name="{{p.icon}}" item-left></ion-icon>
  {{ 'Menu.' + p.title | translate }}
</ion-item>
于 2016-11-30T11:57:32.450 に答える