簡體   English   中英

如何在 Ionic3、Cordova 和 Angular4 應用程序中獲取 android 設備的語言?

[英]How can I get language of the android device in Ionic3, Cordova and Angular4 application?

我想從使用 Ionic3、Cordova 和 Angular4 開發的應用程序中獲取 android 設備語言。

我怎么才能得到它?

您可以使用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));
}

window.navigator.language為我工作,沒有插件。 我沒有檢查結果與全球化插件的比較結果如何,但我得到的結果如下:Android:“en-us”、“es-us”和 iOS:“en-US”和“es-XL”

另請參閱https://stackoverflow.com/a/4079798/431296 - window.navigator.userLanguage未在 Android 或 iOS 上定義,所以我沒有包含它

跟進 David 的回答,不推薦使用全球化 API。

由於 iOS、Android 和 Windows 設備現在支持ECMA 國際化 API ,因此不再需要此插件。 * 從這個插件遷移到ECMA 國際化 API在這篇Cordova 博客文章中進行了解釋。

如果你使用 ngx-translate,

import { TranslateService } from '@ngx-translate/core';

constructor(private translate: TranslateService) {
  console.log(this.translate.getBrowserLang());
}

在設備和瀏覽器上工作正常。 它為我返回“en”或“de”。

離子 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));

對於帶電容器的 ionic 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

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM