Cordova / Phonegap 全球化对比 navigator.language
Cordova / Phonegap Globalization vs. navigator.language
我想实施某种机制来为我的 Cordova 应用程序自动选择 UI 语言。该应用程序也可通过网络(即浏览器)提供服务。
据我所知,我可以使用 Cordova 全球化 API 插件 (here),或者 Android 和 iOS 似乎都支持 navigator.language 给出设备语言。
有什么理由我应该选择使用 Cordova 插件而不是内置 browser/Web 视图 属性?
谢谢!
在真实设备上进行一系列搜索和测试后,我可以说这两种检索设备语言的方法大致相同,除了两个小差异:
- 在 iOS 设备上,用户可以分别选择ose 语言和设备区域。因此,例如,它可以选择 ose 作为语言
italian
但作为地区 USA
。在这种情况下,插件将 return 字符串 it-US
与 navigator.language
属性 不同,后者将 return 字符串 it-IT
(在 iOS 11).如果你只需要知道语言,这不是什么大问题。
- 在 Android 上,有一个 bug,因此
navigator.language
不会立即更新。新设置仅在应用程序被终止后可用。该插件不会遭受 os 这个错误。解决方法是使用正确更新的 navigator.languages
属性(在 Android 5.0.2 上测试)。
如果您只需要知道语言,您可以毫无问题地使用 navigator
对象提供的信息。
我想实施某种机制来为我的 Cordova 应用程序自动选择 UI 语言。该应用程序也可通过网络(即浏览器)提供服务。
据我所知,我可以使用 Cordova 全球化 API 插件 (here),或者 Android 和 iOS 似乎都支持 navigator.language 给出设备语言。
有什么理由我应该选择使用 Cordova 插件而不是内置 browser/Web 视图 属性?
谢谢!
在真实设备上进行一系列搜索和测试后,我可以说这两种检索设备语言的方法大致相同,除了两个小差异:
- 在 iOS 设备上,用户可以分别选择ose 语言和设备区域。因此,例如,它可以选择 ose 作为语言
italian
但作为地区USA
。在这种情况下,插件将 return 字符串it-US
与navigator.language
属性 不同,后者将 return 字符串it-IT
(在 iOS 11).如果你只需要知道语言,这不是什么大问题。 - 在 Android 上,有一个 bug,因此
navigator.language
不会立即更新。新设置仅在应用程序被终止后可用。该插件不会遭受 os 这个错误。解决方法是使用正确更新的navigator.languages
属性(在 Android 5.0.2 上测试)。
如果您只需要知道语言,您可以毫无问题地使用 navigator
对象提供的信息。