2016-04-26 24 views
6

Tôi đã thay đổi tên của nút Quay lại trong ionic 2 nhưng có ai đó biết cách bạn có thể dịch nút này bằng ng2-translate không?dịch lại nút ionic 2

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

Trả lời

9

Bạn có thể dịch các văn bản trở lại như thế này (giả sử bạn đã thực hiện thành công các mô-đun ng2-dịch) trong app.ts của bạn:

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

Nó là cần thiết để thiết lập này trong tư thế sẵn sàng - chức năng vì bản địa hóa tải không đồng bộ và đây là nơi bạn biết rằng các tệp bản địa hóa đã được tải và mô-đun sẵn sàng hoạt động.

Rõ ràng là tôi đã thiết lập các văn bản dịch trong json-file thích hợp dưới ui.general.back;)

Nếu bạn chưa truy cập vào cấu hình thì bạn cần phải nhập nó:

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

vĩ đại, công trình này. Tôi cũng phải thêm vào cấu trúc riêng của cấu trúc: Cấu hình riêng: Config' – Guus

+0

cũng hoạt động để dịch văn bản thành phần như các trang hoạt động –

+2

Để giữ kiểu mũi tên chỉ của android, thêm 'ios' làm tham số đầu tiên trong this.config.set: 'this .config.set ('ios', 'backButtonText', this.translate.get ('ui.general.back') ['value']); ' –

2

Bạn có thể dịch các văn bản trở lại như thế này, đặt trên 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); } 
    ); 
    } 
}); } 
+0

Điều này phù hợp với tôi. Làm tốt lắm :) –

1

tôi đã sử dụng nó như thế này (trong app.component.ts)

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

1

Trong bạn 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} 
]}) 
Các vấn đề liên quan