我想从使用Ionic3,Cordova和Angular4开发的应用程序中获取Android设备语言。
我怎样才能得到它?
答案 0 :(得分:11)
您可以使用同时提供cordova-plugin-globalization的ionic-native wrapper。它提供了许多有用的方法,但您可能正在寻找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));
}
答案 1 :(得分:8)
window.navigator.language
没有插件为我工作。我没有检查结果与Globalization插件的比较,但我得到的结果如下:Android:“en-us”,“es-us”和iOS:“en-US”和“es-XL”
另见https://stackoverflow.com/a/4079798/431296 - window.navigator.userLanguage
未在Android或iOS上定义,因此我没有将其添加
答案 2 :(得分:1)
按照David的回答,不建议使用Globalization API。
现在ECMA Internationalization API在iOS,Android和Windows设备上受支持,因此不再需要此插件。 *在此ECMA Internationalization API中说明了从此插件迁移到Cordova blog post的情况。
答案 3 :(得分:0)
离子4
在Ionic中,我们称其为Globalization执行特定于用户的语言环境,语言和时区的操作。
安装:终端
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));
答案 4 :(得分:0)
如果您使用的是ngx-translate,
import { TranslateService } from '@ngx-translate/core';
constructor(private translate: TranslateService) {
console.log(this.translate.getBrowserLang());
}
在设备和浏览器中工作正常。它会为我返回“ en”或“ de”。