我在离子2中更改了后退按钮的名称,但有人知道如何使用ng2-translate翻译此按钮吗?
this.config.set('backButtonText', 'Go Back'); // < want to translate this with ng2-translate.
答案 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); }
);
}
}); }