每个Web开发者应该知道的jQuery i18n 知识

时间:2017-09-16 18:52

在设计网站时,一个重要的考虑是国际化。世界上每个地区和国家对于文本、消息、数字和日期应该如何出现有不同的期望。特定应用程序的每个用户期望所有文本和消息以熟悉的格式显示。JavaScript有一个很好的国际化解决方案称为jQuery.i18n。jQuery i18n用于MediaWiki和许多其他国际网站的本地化。

JQuery I18n的特性

保持代码与i18n内容分离。此功能保持代码的模块化,并允许开发人员加载他们需要的i18n功能。

使用JSON格式。

允许不刷新网页而更改语言。

处理复数形式不使用附加消息。规则处理使用Unicode Consortium的通用区域设置数据存储库(Common Locale Data Repository,CLDR)完成

通过传递性别值来根据性别更正句子。

支持语法形式。

JQuery I18n目录

使用jQuery i18n格式化目录的常规方法是对存储在此目录中的每种语言代码都有一个JSON文件的i18n文件夹。Figure 1中显示了一个示例目录。

每个Web开发者应该知道的jQuery i18n 知识

Figure 1.每种语言代码的JSON文件的目录。

JQuery I18n消息文件格式

jQuery i18n使用JSON文件,这允许用户以轻量级格式存储信息以进行数据交换。 JSON文件非常有益,因为:

它们允许翻译人员轻松地访问要翻译的文本。如果需要发送JSON文件用于翻译服务,这将非常有用。

它们阻止对数据库的直接访问。

JSON文件由一系列名称-值对或值的有序列表组成。在用于国际化的JSON文件中,消息键-消息对包含所有语言对的名称和值。每个键都是小写字母,使用“ – ”分隔单词,并与所选语言中的值相关联。JSON文件可以包含@metadata,存储关于文件的非消息信息,例如版权和作者信息。通常为每种语言类型创建单独的JSON文件;然而,所有的翻译也可以放在一个单一的文件中。单独JSON文件的优点是文件不那么复杂。但是,单个JSON文件有助于确保在嵌入多语言数据时字段不会重复。下面提供了一个包含单一语言和@metadata的JSON文件示例:

"@metadata": {  

"author""Colleen",  

"description""An example JSON file"

"last-updated""2016-09-21"

"message-documentation""qqq" 

}, 

"greeting""Hello"

"bye""Goodbye" 

下面提供了一个包含多种语言和@metadata的JSON文件示例:

{  

"@metadata": { 

"author""Fred"

"description""An example JSON file"

"last-updated""2016-09-21"

"message-documentation""qqq"

"arrayGroups": { 

"label": { 

"en""label_en"

"fr""label_fr" 

}, 

"en": { 

"greeting": “Hello”, 

"bye""Goodbye" 

"fr": { 

"greeting": “Bonjour”, 

"bye""Au revoir" 

}  

 } 

用法

jquery.i18n的一些使用方法如下表所示。

使用区域

 

说明

 

切换区域设置

 

可以使用locale选项获取网页的区域设置:

$.i18n( {

locale: ‘fr’ // Locale is French

} );

在插件初始化后切换到另一个区域设置:

$.i18n ().locale = ‘ml’;

 

消息加载

 

可以为特定区域设置或多个区域设置加载消息。

$.i18n().load( {

} );

 

数据API

 

本地化消息可以不使用JavaScript显示。

<li data-i18n=”message-key”></li>

 

消息格式 – 占位符

 

这些参数在消息中通过$1,$2,$3表示,语法为{{PLURAL:$1|pluralform1|pluralform2|…}} ,并由运行时替换。

 

消息格式 – 复数

 

在英语中,只有两个复数形式,但在许多其他语言中,有两个以上的复数形式。

 

消息格式 – 性别

 

{{GENDER…}}语法使用占位符的性别,动态更改语法。

 

翻译

有几种方法来翻译一个jquery.i18n应用程序:

编辑JSON文件。这适用于语言数量有限的小型应用程序。

有一个应用程序的翻译界面。此选项适用于具有许多翻译器的专有或专用应用程序。

JQuery.I18n.Properties