迁移自 Cordova Globalization 插件
Cordova Globalization 插件的创建是为了在大多数移动平台无法区分这些设置时,获取信息并根据用户的区域设置、语言和时区执行操作。 随着浏览器中新 API 的出现,我们现在可以使用 ECMA 国际化 API 在 iOS、Android、Windows 设备和桌面浏览器上实现此目标。 因此,不再需要此 Cordova 插件,并且很快将会被淘汰。
从插件迁移到国际化 API
Cordova Globalization 插件定义了一个全局 `navigator.globalization` 对象,该对象提供了各种方法来访问用户的区域设置、语言和时区。 要从浏览器获取首选语言,可以使用 `navigator.globalization.getPreferredLanguage` 方法,如下所示:
navigator.globalization.getPreferredLanguage(function (language) {
console.log('language: ' + language.value + '\n');
}, function () {
console.log('Error getting language\n');
});
可以使用以下方法查找当前区域设置:
navigator.globalization.getLocaleName(function (locale) {
console.log('locale: ' + locale.value + '\n');
}, function () {
console.log('Error getting locale\n');
});
ECMA 国际化 API 提供了 `Intl` 对象,该对象提供了语言敏感的字符串比较、数字格式化以及日期和时间格式化。 首先,我们应该检查浏览器是否支持该 API:
if (window.Intl && typeof window.Intl === 'object') {
console.log('API available');
}
可以使用 `navigator` 对象从浏览器中查找首选语言标签:
console.log(navigator.language);
可以使用 `Intl.getCanonicalLocales(locales)` 方法查找区域设置名称。 `locales` 是一个字符串值或字符串值数组,其中包含语言标签。 然后可以按如下方式获取区域设置名称:
Intl.getCanonicalLocales('EN-US'); // ["en-US"]
Intl.getCanonicalLocales(['EN-US', 'Fr']); // ["en-US", "fr"]
从 Cordova Globalization 插件迁移的另一个实例可以在此示例中看到:`navigator.globalization.dateToString` 方法。 此方法在 Cordova 插件中使用,如下所示:
navigator.globalization.dateToString(
new Date(),
function (date) {
alert('date: ' + date.value + '\n');
},
function () {
alert('Error getting dateString\n');
},
{ formatLength: 'short', selector: 'date' }
);
可以使用国际化 API 通过以下代码获得类似的结果:
var date = new Date();
console.log(new Intl.DateTimeFormat().format(date));
这里是一个很好的资源,可以了解有关 ECMA 国际化 API 中各种方法的更多信息。
非常欢迎并感谢您的反馈!