我想从使用Ionic3,Cordova和Angular4开发的应用程序中获得Android设备语言。
我怎样才能得到它?
window.navigator.language
没有插件的情况下为我工作。我没有检查结果与全球化插件的比较,但我得到了这样的结果:"en-us","es-us"和iOS上的"en-US"和"es-XL"
另请参阅 https://stackoverflow.com/a/4079798/431296 - window.navigator.userLanguage
在 Android 或 iOS 上都没有定义,所以我没有包含它
您可以使用cordova-plugin-globalization,它也提供了一个ionic-native包装器。它提供了许多有用的方法,但您可能正在寻找 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 已被弃用。
随着 ECMA 国际化 API 现在在 iOS、Android 和 Windows 设备上得到支持,不再需要此插件。 * 从这个插件迁移到 ECMA 国际化 API 在这篇 Cordova 博客文章中进行了说明。
如果你使用的是 ngx-translate,
import { TranslateService } from '@ngx-translate/core';
constructor(private translate: TranslateService) {
console.log(this.translate.getBrowserLang());
}
在设备和浏览器中工作正常。它返回"en"或"de"。
对于带电容器的离子 5:
npm install @capacitor/device
npx cap sync
在代码中:
import { Device } from '@capacitor/device';
console.log((await Device.getLanguageCode()).value); // en-US
https://capacitorjs.com/docs/apis/device
离子 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));