gpt4 book ai didi

javascript - 国际化在 JavaScript 中是如何工作的?

转载 作者:IT老高 更新时间:2023-10-28 13:20:00 27 4
gpt4 key购买 nike

我想知道如何在 JavaScript 中处理国际化。我用谷歌搜索,但没有得到令人信服的答案:

  • JavaScript 是否具有对国际化的原生支持?
  • 什么是 JavaScript 中的 i18n?
  • 如何处理日历、货币、日期等?

我已经阅读了Internationalization inside JavaScript .

最佳答案

旧版浏览器中的本地化支持很差。最初,这是由于 ECMAScript 语言规范中的短语如下所示:

Number.prototype.toLocaleString()
Produces a string value that represents the value of the Number formatted according to theconventions of the host environment’s current locale. This function is implementation-dependent, andit is permissible, but not encouraged, for it to return the same thing as toString.

规范中定义的每个本地化方法都被定义为“依赖于实现”,这会导致很多不一致。在这种情况下,Chrome Opera 和 Safari 将返回与 .toString() 相同的内容。 Firefox 和 IE 将返回区域设置格式的字符串,IE 甚至包含千位分隔符(非常适合货币字符串)。 Chrome 最近更新为返回千位分隔的字符串,但没有固定的小数。

对于现代环境ECMAScript Internationalization API spec ,一个补充 ECMAScript 语言规范的新标准,为字符串比较、数字格式以及日期和时间格式提供了更好的支持;它还修复了语言规范中的相应功能。介绍可见here .实现可用于:

  • Chrome 24
  • 火狐 29
  • Internet Explorer 11
  • 歌剧 15

还有一个兼容性实现,Intl.js ,这将在 API 尚不存在的环境中提供 API。

确定用户的首选语言仍然是一个问题,因为没有获取当前语言的规范。每个浏览器都实现了一种获取语言字符串的方法,但这可以基于用户的操作系统语言或仅基于浏览器的语言:

// navigator.userLanguage for IE, navigator.language for others
var lang = navigator.language || navigator.userLanguage;

一个很好的解决方法是将 Accept-Language header 从服务器转储到客户端。如果格式化为 JavaScript,则可以将其传递给 Internationalization API 构造函数,该构造函数将自动选择最佳(或最受支持的)语言环境。

简而言之,你必须自己做很多工作,或者使用 framework/library ,因为你不能依赖浏览器来为你做这件事。

用于本地化的各种库和插件:

  • 其他:

随意添加/编辑。

关于javascript - 国际化在 JavaScript 中是如何工作的?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/3084675/

27 4 0
文章推荐: node.js - 正确处理 Mongoose 的获取错误?
文章推荐: postgresql - PostgreSQL 中的 MongoDB Capped 集合等价物
文章推荐: javascript - 在 contentEditable
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com