我想要从使用Ionic3、Cordova和Angular4开发的应用程序中获取Android设备的语言。
我该如何获取它?
我想要从使用Ionic3、Cordova和Angular4开发的应用程序中获取Android设备的语言。
我该如何获取它?
window.navigator.language
在没有插件的情况下可以使用。我没有查看与全球化插件相比较的结果,但我得到了以下结果:在Android上:"en-us","es-us",在iOS上:"en-US"和"es-XL"
此外,请参见https://dev59.com/j3NA5IYBdhLWcg3wPLL-#4079798 - 在Android或iOS上都未定义window.navigator.userLanguage
,因此我没有包含它。
getPreferredLanguage()
或getLocaleName()
。
安装:
ionic cordova plugin add cordova-plugin-globalization
npm install --save @ionic-native/globalization
示例:
import { Globalization } from '@ionic-native/globalization';
constructor(private globalization: Globalization) {
this.globalization.getPreferredLanguage()
.then(res => console.log(res))
.catch(e => console.log(e));
}
回复David的答案,全球化API已经过时。
现在iOS、Android和Windows设备都支持ECMA国际化API,因此不再需要该插件。 * 从该插件迁移到ECMA国际化API的方法在这篇Cordova博客文章中有解释。
import { TranslateService } from '@ngx-translate/core';
constructor(private translate: TranslateService) {
console.log(this.translate.getBrowserLang());
}
该设备和浏览器上正常工作。它返回“en”或“de”。
npm install @capacitor/device
npx cap sync
import { Device } from '@capacitor/device';
console.log((await Device.getLanguageCode()).value); // en-US
Ionic 4
在Ionic中,我们称其为全球化,执行针对用户区域设置、语言和时区的特定操作。
安装:终端
ionic cordova plugin add cordova-plugin-globalization
npm install @ionic-native/globalization
用途: 任何组件或服务文件。import { Globalization } from '@ionic-native/globalization/ngx';
constructor(private global: Globalization) { }
...
this.global.getPreferredLanguage()
.then(res => console.log(res))
.catch(e => console.log(e));