ng2-translate 组件文件
ng2-translate on component file
我在我的 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 作为 ion-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 上的会议:[=14=]
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]
})
],
...
正如您所说,您的 p.title
值类似于 pantry
、inventory
那么您必须使用 translate
管道,如下所示:
<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>
在这里您可以找到使用 TranslationPipe 和 TranslationService 的 Ionic2 rc3 的 repo。
https://github.com/philipphalder/ionic2-rc3-NG2-Translate
我在我的 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 作为 ion-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 上的会议:[=14=]
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]
})
],
...
正如您所说,您的 p.title
值类似于 pantry
、inventory
那么您必须使用 translate
管道,如下所示:
<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>
在这里您可以找到使用 TranslationPipe 和 TranslationService 的 Ionic2 rc3 的 repo。 https://github.com/philipphalder/ionic2-rc3-NG2-Translate