JavaScript中的国际化是如何工作的

JavaScript中的国际化是如何工作的

国际化(也称为i18n)是一种使产品和服务能够轻松适应特定本地语言和文化的过程。本地化(也称为L10n)是将国际化的软件适应特定地区或语言的过程。换句话说,国际化是使你的软件能够支持多种文化(货币格式、日期格式等)的过程,而本地化则是实施某种或多种文化的过程。

这两个过程通常是被具有多个国家利益的公司所采用的,但对于一个独立网站的开发者来说也非常有用。例如,正如你可能已经知道的,我是意大利人并拥有一个网站。我的网站以英语呈现,但我想要将其国际化然后本地化为意大利语。这对于那些以意大利语为母语并不了解英语的人来说非常有用。

开发者认为i18n仅与非英语语言的翻译有关。i18n只是需要将现有应用扩展到多个国家或市场上时才需要。我一直试图解释i18n实际上是关于“通话”的。每个应用在某个时候都需要“与用户通话”。为了与用户进行通话,应用可能需要支持复数形式、性别变化、日期信息、数量信息和货币信息。即使是在英语中,正确地完成这些工作也很困难。

Globalize和JavaScript国际化API 对于一些人来说,这可能会让他们吃惊,但JavaScript本身对国际化提供了本地支持,即国际化API(也称为ECMA-402)。

Intl对象是window对象上的一个对象,它充当国际化API的命名空间。

该API目前提供了一些方法,用于格式化数字和日期,以及在特定语言中比较字符串。

现在您已经了解了国际化API的存在,您可能会认为Globalize在后台使用它。

这种做法肯定会带来更好的日期和数字格式性能。

然而,由于支持度较低,在浏览器中非常不一致,该库不使用国际化API。

现在我想让您体验一下国际化API。

格式化日期

var date = new Date(2019, 2, 22); 
  
// "22/02/2019" 
console.log(new Intl.DateTimeFormat('it-IT').format(date)); 
  
// "02/22/2019" 
console.log(new Intl.DateTimeFormat('en-US').format(date)); 
  
// "22/02/2019" 
console.log(new Intl.DateTimeFormat('en-GB').format(date)); 

输出:

22/3/2019
3/22/2019
22/03/2019

在这个示例中,我使用DateTimeFormat构建器来创建一个替代的日期格式化器,使用所需的区域设置(”it-IT”、”en-US”和”en-GB”)。

然后,我调用format方法来格式化日期对象。

格式化数字

var number = 2153.93; 
  
// "2.153, 88" 
console.log(new Intl.NumberFormat('it-IT').format(number)); 
  
// "2, 153.88" 
console.log(new Intl.NumberFormat('us-US').format(number)); 
  
// "2, 153.88" 
console.log(new Intl.NumberFormat('en-GB').format(number)); 

输出:

2.153,93
2,153.93
2,153.93

结论

在本文中,我讨论了国际化是什么,以及为什么对于拓展产品市场很重要。我简单介绍了国际化API,提到了一些支持的功能,并且给出了一些示例。

支持的浏览器: 国际化API支持以下浏览器:

  • Google Chrome
  • Internet Explorer
  • Firefox
  • Apple Safari
  • Opera

Python教程

Java教程

Web教程

数据库教程

图形图像教程

大数据教程

开发工具教程

计算机教程