デバイスの言語を取得し、デバイスの言語でコンテンツを翻訳したい。
https://ionicframework.com/docs/v3/native/globalization/を参照して使用しようとしています。
これは私のapp.module.tsです
import { HttpClient,HttpClientModule} from '@angular/common/http';
import { TranslateLoader, TranslateModule} from '@ngx-translate/core';
import { TranslateHttpLoader } from '@ngx-translate/http-loader';
import { Globalization } from '@ionic-native/globalization'
export function createTranslateLoader(http:HttpClient){
return new TranslateHttpLoader(http, './assets/i18n/','.json')
}
. . .
imports: [
TranslateModule.forRoot({
loader: {
provide: TranslateLoader,
useFactory:(createTranslateLoader),
deps: [HttpClient]
}
})
],
providers: [
Globalization
]
これは私のapp.component.tsです
import { Globalization } from '@ionic-native/globalization'
import { TranslateService } from '@ngx-translate/core';
constructor(public Translate:TranslateService,private global: Globalization) {
platform.ready().then(() => {
this.Translate.setDefaultLang('EN');
this.global.getPreferredLanguage()
.then(res => console.log(res))
.catch(e => console.log(e));
});
}
}
これは私のhome.htmlです
<ion-title> {{'HOME.TITLE' | translate}} </ion-title>
<h2> {{'HOME.CONTENT' | translate}}</h2>
これは私のPackage.jsonです
{"@angular/core": "5.2.11"
"@angular/http": "5.2.11"
"@ionic-native/globalization": "^4.20.0"
"@ngx-translate/core": "^9.1.1"
"@ngx-translate/http-loader": "^4.0.0"
"cordova-plugin-globalization": "^1.11.0"
"description": "An Ionic project",
"cordova": {
"plugins": {
"cordova-plugin-globalization": {}
}
}
デフォルトの言語(EN)のみが表示されます。選択したデバイス言語で他の言語を翻訳したいのですが、解決方法や例を教えてください。
あなたは言及されているイオンV4ドキュメントを代わりに参照してください。そのイオンV3ドキュメントを
ionic cordova plugin add cordova-plugin-globalization
npm install --save @ionic-native/globalization@4
https://ionicframework.com/docs/v3/developer-resources/ng2-translate/
npm install @ngx-translate/core @ngx-translate/http-loader --save
この記事はインターネットから収集されたものであり、転載の際にはソースを示してください。
侵害の場合は、連絡してください[email protected]
コメントを追加