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

时间:2017-10-23 18:56:29

标签: android cordova ionic-framework ionic2 ionic3

我想从使用Ionic3,Cordova和Angular4开发的应用程序中获取Android设备语言。

我怎样才能得到它?

5 个答案:

答案 0 :(得分:11)

您可以使用同时提供cordova-plugin-globalizationionic-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”。