我正在使用ngx-translator软件包,但无法在我的应用中设置默认语言。
这是我的 app.module.ts :
import { TranslateModule, TranslateLoader } from '@ngx-translate/core';
import { TranslateHttpLoader } from '@ngx-translate/http-loader';
import { HttpClientModule, HttpClient } from '@angular/common/http';
export function HttpLoaderFactory(http: HttpClient) {
return new TranslateHttpLoader(http, "./assets/i18n/", ".json");
}
@NgModule({
declarations: [AppComponent],
entryComponents: [],
imports: [BrowserModule,
TranslateModule.forRoot({
loader: {
provide: TranslateLoader,
useFactory: HttpLoaderFactory,
deps: [HttpClient]
}
}),
AppRoutingModule, HttpClientModule],
providers: [
StatusBar,
{ provide: RouteReuseStrategy, useClass: IonicRouteStrategy }
],
bootstrap: [AppComponent]
})
export class AppModule {}
这是我的 app.component.ts :
import { TranslateService } from '@ngx-translate/core';
constructor(private translate: TranslateService) {
this.initializeApp();
this.translate.setDefaultLang('en');
}
这是我的 tab1.page.ts :
import { TranslateService } from '@ngx-translate/core';
language: string = this.translate.currentLang;
constructor(private translate: TranslateService) {
console.log('Default language:', this.translate.currentLang);
}
当我管理console.log('Default language:', this.translate.currentLang);
时,它在控制台中显示为undefined。
这是我的 customcomponent.component.html :
<ion-select (ionChange)='setLanguage()'>
<ion-select-option value='en' selected='true'>English</ion-select-option>
<ion-select-option value='ar'>Arabic</ion-select-option>
</ion-select>
我只是要在选定的框中显示选定的语言,但是我当前的语言不起作用。
当我打印当前的Lang时,它显示为未定义。
非常感谢您的帮助。
答案 0 :(得分:2)
我也面临着同样的问题。只需更改app.component.ts
来自
this.translate.setDefaultLang('en');
收件人
this.translate.use('en');
就我而言:
我已经创建了这样的服务(提供者)
public changeLanguage(langCode:string){
this.translate.use(langCode);
}
只需通过任何组件的函数传递语言名称
this.serviceProvider.changeLanguage("en");