翻译按钮离子2

时间:2016-04-26 09:57:12

标签: typescript angular ionic2

我在离子2中更改了后退按钮的名称,但有人知道如何使用ng2-translate翻译此按钮吗?

this.config.set('backButtonText', 'Go Back'); // < want to translate this with ng2-translate.

4 个答案:

答案 0 :(得分:14)

您可以在app.ts中翻译这样的背景文本(假设您已经成功实施了ng2-translate模块):

initializeApp() {
    this.platform.ready().then(() => {
        this.config.set('backButtonText', this.translate.get('ui.general.back')['value']);
    });
}

有必要在准备功能中设置它,因为本地化加载异步,这是您知道本地化文件已加载且模块已准备好工作的地方。

显然我已将翻译文本设置在ui.general.back下的相应json文件中;)

如果您尚未访问配置,则需要导入它:

import {..., Config} from 'ionic-angular';

答案 1 :(得分:4)

在你app.module.ts:

@NgModule({
declarations: [
    MyApp
],
imports: [
    BrowserModule,
    IonicModule.forRoot(MyApp, {
        platforms: {
            ios: {
                backButtonText: 'Voltar'
            }
        }
    }),
],
bootstrap: [IonicApp],
entryComponents: [
    MyApp
],
providers: [
    StatusBar,
    SplashScreen,
    {provide: ErrorHandler, useClass: IonicErrorHandler}
]})

答案 2 :(得分:3)

我必须像这样使用它(在app.component.ts中)

this.platform.ready().then(() => {
  this.translate.get('GENERIC.BACK').subscribe(backLabel => {
    this.config.set('ios', 'backButtonText', backLabel);
  });
});

答案 3 :(得分:2)

您可以像这样翻译后面的文字,放在app.component.ts

ngAfterViewInit() {
this.navCtrl.viewWillEnter.subscribe((view) => {
  let parentView = this.navCtrl.getPrevious(view);

  if (parentView) {
    this.translate.get('nav.back.label').first().subscribe(
      moduleName => { this.navCtrl.getActive().getNavbar().setBackButtonText(moduleName); }
    );
  }
}); }