已合作成功的客户

遍及全国及海外

中国

杭州,绍兴,宁波,湖州,嘉兴,温州,台州,上海,北京,南京,苏州,常州,无锡,长沙,青岛,江西,台湾,南宁,海南,成都,哈尔滨,深圳,香港,沈阳 ...

海外

美国,加拿大,丹麦,澳大利亚,新加坡,法国,智利,日本,英国 ...

合作咨询

4001-355-360

洞见

news

洞察行业新闻,实时了解最新动态

JS 国际化 Intl:让页面适应不同语言和地区

作者:admin

来源:lanyunwork

时间:2026-04-08

分享到:

 

现在很多网站面向的不只是一个国家或语言的用户。日期格式、数字写法、文字排序这些细节,不同地区的习惯都不一样。JavaScript 提供的 Intl 对象,就是专门用来处理这类问题的工具集。

Intl 是什么

Intl 是 JavaScript 的国际化标准对象,里面包含了一系列构造函数和方法。它们的作用是根据不同的语言和地区规则,来格式化日期、时间、数字、货币,以及处理文本比较。使用 Intl 的好处是不用自己手动拼写日期格式或判断货币符号位置,浏览器会根据传入的语言标签自动处理这些差异。

日期和时间的格式化

不同地区对日期时间的写法差别很大。比如美国习惯用月/日/年,欧洲很多国家用日/月/年,中国则常用年-月-日。时间上也有12小时制和24小时制的区别。

Intl.DateTimeFormat 就是用来解决这个问题的。使用时只需要指定语言和地区,再选择需要显示哪些部分,比如年、月、日、时、分、秒。剩下的格式工作全部交给它完成。这样无论在哪个地区的用户看来,日期显示方式都符合他们的日常习惯。

数字和货币的格式化

数字的写法也有地域差异。有些地方用小数点,有些地方用逗号作为小数分隔符。千位分隔符的规则也不一样。

Intl.NumberFormat 可以处理数字的格式化。它还能专门用来显示货币,只需要指定货币类型,比如美元、欧元、人民币。方法会自动处理货币符号的位置、小数位数,以及正负数或特殊金额的显示方式。这对于电商类网站尤其重要,能避免因为格式习惯不同造成的误解。

文本排序和比较

不同语言的字母顺序规则是不一样的。比如中文按拼音或笔画排序,德语中带变音符号的字母有特定的排序位置。直接用 JavaScript 的普通比较符来处理这类文本排序,结果往往不符合当地习惯。

Intl.Collator 提供了按语言规则比较字符串的能力。它可以用于数组的排序,也可以用来判断两个字符串的大小关系。通过指定合适的语言标签和比较选项,可以让排序结果更自然,符合当地用户的预期。

列表的格式化

在界面上展示一组项目时,不同语言中连接词的使用方式不同。比如英语习惯用 A, B and C,而中文习惯用 A、B 和 C。这些细微差别手动处理很麻烦,尤其是需要支持多语言时。

Intl.ListFormat 专门负责把数组转换成符合语言习惯的列表字符串。它会根据语言自动选择合适的连接词和标点符号,开发者只需要传入数组,剩下的格式问题交给它处理。

相对时间的格式化

“昨天”“三分钟前”“下个月”这类相对时间的表达方式,也是国际化中常见的需求。不同语言对相对时间的语法规则差别很大,有的语言还会区分距离现在是过去还是未来。

Intl.RelativeTimeFormat 可以根据时间差和单位,自动生成符合当地语言习惯的相对时间描述。只需要传入数值和时间单位,比如 3 和 “day”,它会返回类似“3天前”或“3天后”的字符串,语言和单位形式都自动匹配。

使用时的注意点

Intl 构造函数的第一个参数是语言标签,比如 “zh-CN”、“en-US”、“de-DE”。如果不传这个参数,会使用当前运行环境的默认语言,不同用户的浏览器设置可能导致显示结果不一致。如果需要固定某种格式,建议明确指定语言标签。

另外不同浏览器的 Intl 实现细节可能略有差异,但核心规则是一致的。在需要支持较旧版本的浏览器时,可以先检查 Intl 对象是否存在,或者使用对应的 polyfill 做兼容处理。

总结

Intl 对象为前端国际化提供了统一且可靠的方案。它覆盖了日期、数字、文本排序、列表和相对时间等常见场景。用好这些方法,可以让网站自然地适应不同地区用户的使用习惯,减少手动处理格式带来的繁琐工作和潜在错误。

 

业务咨询

微信咨询

请扫二维码
咨询项目经理

400电话

4001-355-360

获取方案

与蓝韵项目经理通话

请输入正确的手机号码格式

信息保护中请放心填写

在线咨询
 
提交成功
关闭浮窗