如何在Ionic3,Cordova和Angular4应用程序中获取Android设备的语言



我想从使用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));

相关内容

  • 没有找到相关文章

最新更新