关于国际化

从一开始,Web for All就一直是万维网联盟的设计原则和目的,也是对Web应用的自然要求,因为世界各地的人们都可以使用Web。遗憾的是,很多人很容易忽视与其所在文化不同的人或使用不同语言或书写系统的地域的需求,而这样构建的Web应用和内容会阻碍世界各地的很多用户使用你的技术或内容。

什么是i18n?

i18n是internationalization(国际化)的行业标准缩写(因为首末字符i和n之间有18个字母)。

什么是国际化?

翻译和本地化并不是我们所指的国际化。感到惊讶吗?让我来解释。

国际化指的是在设计和开发你的内容、应用、规范等时确保其适用于或易于适应所有文化、地区或语言的用户。这是你解决第一道障碍的地方:不是你的用户无法阅读或理解你的产品,而是你的产品难以改编成适合不同文化、地区或语言的版本。

国际化本质上是一种质量管理手段,让你在开发周期的早期采取行动,这样你就可以避免在将产品推向新市场时出现成本高昂且有时令人望而却步的障碍。

通用的代码基础

国际化的重中之重是确保你的产品支持世界上所有书写系统中的文本。你应该确保你的产品基于通用字符集Unicode。这其中不仅包括你的HTML页面,还包括所有后端数据库、内容管理系统、脚本等。有很多好看的应用可以轻松地处理你需要的任何语言,但在后台处理数据后却返回的是乱码。

你还需要确保可以轻松交换人类会阅读的所有自然语言文本的翻译(包括错误消息、JSON字符串等),确保这些文本携带正确的语言和文字方向的元数据。语言元数据对于选择正确的字体以及支持世界各地使用的不同排版样式(如换行、文本对齐、强调或其他文字装饰、文本选择和单位等)来说非常重要。

建议将语义(标记语言)与样式(CSS)明确分开,并避免假定特定的文本顺序或特定标点符号等的内容硬编码。

书写方向

你是否知道,在拉丁字母之后,世界上第二大广泛使用的书写系统是阿拉伯字母?阿拉伯字母用于书写许多语言,通常在表示元音的方式上有所不同,或是字母略有不同。但是所有这些语言的共同点是它们主要是从右到左阅读的。这也对排版有影响:在使用阿拉伯字母的页面上,表格列、电子表格、图标、菜单甚至网页布局等内容通常是英文内容的镜像。因此,不要在样式表中使用诸如leftright之类的值,而应使用诸如startend之类的逻辑值:这样在网页的书写方向改变时,镜像会自动发生,网页的译者也不会弄乱你的代码。

实际上,现实世界比这更加复杂。阿拉伯语在同一行里可能会混合从右到左和从左到右的文本,而能够控制一段文字的书写方向对这个用例很重要。在处理数据中的字符串时,保留文本的基础方向(base direction)也非常重要,这样当这些字符串在UI上展示时它们看起来才是正常的。

阿拉伯语的双向文本

不仅仅是阿拉伯语会有这种情况。其他语言如希伯来语,还有迪维希语、罗兴亚语等南亚语言,以及阿德拉姆字母和西非书面字母等新兴的非洲书写系统也是由右至左书写的。

姓名、地址等

如果你正在处理HTML表单或者为诸如人名和地址等信息创建数据库,你需要考虑如何处理世界各地存在的许多不同的格式化数据的方法。

在一些国家,人们的名字只有一个部分,或者姓在前名在后。人们可能有单个字母的名字,或者很长的名字。日文地址的排列顺序是由大(国家或县)到小(房屋位置),并且有很多变种。(事实上,日本的房子通常没有门牌号。)

你需要考虑如何处理获取和存储此类数据(以及许多其他类型的数据,并且对于不同的地域使用不同的方法)。如果你能预先使你的系统变得灵活,当你想要让系统支持新的语言环境时就越方便。

哦,顺便说一下,这些人不会说或写英文,而且他们倾向于以非常不同的方式对数据进行排序,所以你还需要弄清楚这是否会给你的后台造成问题,并在应用本地化时制定计划来解决这些问题。

时区、货币、日期等

你通常希望以一种标准格式在应用内部存储数据,并以对本地用户来说自然的方式显示数据。除了上文已经提到的姓名和地址之外,小数点是句点还是逗号,年月日的顺序,日历中的第一天是星期几等都是需要考虑的内容。

你可能还需要以本地和音译形式支持不同的历法、时区和夏令时等。你是否知道世界上有许多国家和地区有自己的历法?在日本,出生日期通常使用年号纪年表示,而泰国的报纸通常使用佛历(公元2022年是佛历2565年)。除此以外,你创建的应用还需要能够适应不同的时区。

如果你的应用和钱打交道,你还需要考虑如何处理使用不同货币的用户。除了要决定如何表示货币数据以外,你还需要考虑如何建立管理不同的货币系统的机制。如何为生活水平可能有很大差异的不同国家开发一个定价模型?如何将订阅和付款从一种货币转换为另一种货币?

文化规范和用户预期

你还需要提前做一些功课,了解不同市场的文化偏好和习惯,并选择灵活的内容设计技术和流程,以便你以后可以支持其他人。

比如说,有些符号可以是文化特定的。对号(✓)在许多国家和地区表示“是”或“正确”,但在某些国家和地区,例如日本,对号可以用来表示“不正确”。作为本地化流程的一部分,本地化人员可能需要将其变为圈号(他们的“正确”符号)。

如果你希望你的产品吸引用户,你需要使用能够灵活调整颜色、布局和信息结构,以及引入本地化颜色的内容管理系统。你还需要确保不要对图形或图像进行硬编码,因为这样可能会冒犯或疏远其他地区的用户。

对于需要处理货币的应用来说,还有相当基本的问题。用户是否熟悉信用卡交易?目标用户群是否有足够的网络带宽(甚至可以使用互联网)?你的应用和与之交互的银行或其他系统是否支持用户的语言?请记住,如今绝大多数用户通过移动设备使用Web。

你是否考虑过你的应用将覆盖的各个地区的当地监管和法律因素?

然后再开始本地化

上文讨论的所有内容都是在你设计和构建应用时需要关注和准备的内容。否则,当你进入翻译和调整产品以适应各种当地语言和市场的激动人心的阶段时,你可能会发现重重障碍。

本地化是你让你的应用针对当地用户进行改造的阶段:把应用翻译成不同的语言、调整图片和配色、轻弹一下书写方向的开关、提供特殊的的数据收集表格和流程、撰写和特定区域相关的内容等。

国际化意味着尽早预见和规划应用的本地化阶段,这样你不仅可以在时机成熟时做好准备,而且可以避免给自己挖坑,这些坑可能会让你在以后付出高昂的代价。

W3C国际化标准计划都做什么?

W3C国际化(i18n)活动与W3C工作组合作,并与其他组织联络,使在世界各地使用Web技术成为可能,无论语言、书写系统或文化如何。

目前的工作涵盖三个主要领域:

项目雷达介绍了国际化工作组当前正在开展的项目。

有关我们正在开展的工作和我们提供的资源的更多信息都可以通过国际化标准计划主页主页访问。如果你不熟悉国际化,我们的入门页面是一个有用的起点。另请参阅下面的小组列表

我在哪里可以了解国际化?

本站提供了大量资源,帮助内容作者和开发者了解国际化的需求以及技术,并将这些融入到他们的工作中。

学习国际化页面是一个很好的起点。如需更多信息,请转至标准计划主页

小组

活跃中的小组

  1. 国际化工作组
    管理语言支持工作,审查规范,为其他工作组提供国际化指导,并为内容作者提供教育材料。
    主页
    GitHub: w3c/bp-i18n-specdevw3c/charmod-normw3c/i18n-actionsw3c/i18n-activityw3c/i18n-checkerw3c/i18n-discussw3c/i18n-draftsw3c/i18n-glossaryw3c/i18n-issuesw3c/i18n-requestw3c/i18n-testsw3c/i18n-translationsw3c/its2reqw3c/localizable-manifestsw3c/ltliw3c/mlw-metadata-us-implw3c/predefined-counter-stylesw3c/string-metaw3c/string-searchw3c/timezonew3c/type-samplesw3c/typographyw3c/unicode-xml
    通知列表:www-international
    其他列表:public-i18n-corepublic-i18n-translation
    内部列表:member-i18n-core*

  2. 国际化兴趣组
    参与邮件列表即可加入兴趣组。邮件列表中的大部分内容是有关GitHub issue的更新,而具体的技术讨论都在GitHub上。下面列出的所有任务团都属于国际化兴趣组的一部分。
    主页
    GitHub: w3c/character_phrase_testsw3c/klreqw3c/line_paragraph_testsw3c/text_direction_tests
    通知列表:www-international, public-i18n-its-ig

  3. 非洲语言支持
    发现并解决Web在非洲语言文字支持方面的问题。
    主页
    问题讨论
    尚未解决的问题阿德拉姆字母西非书面字母Ajami
    GitHub: w3c/afrlreq
    通知列表(public-i18n-africa):历史邮件订阅邮件列表
    内部列表:public-afrlreq-admin

  4. 美洲语言支持
    发现并解决Web在美洲语言文字支持方面的问题。
    主页
    问题讨论
    尚未解决的问题切罗基语因纽特语克里语Osage
    GitHub: w3c/amlreq
    通知列表(public-i18n-americas):历史邮件订阅邮件列表

  5. 阿拉伯字母支持
    发现并解决Web在阿拉伯语和波斯语等语言支持方面的问题。
    主页
    问题讨论
    尚未解决的问题阿拉伯语克什米尔语波斯语维吾尔语乌尔都语
    GitHub: w3c/alreq
    通知列表(public-i18n-arabic):历史邮件订阅邮件列表
    内部列表: public-alreq-admin
    相关列表(public-i18n-bidi):public-i18n-bidi

  6. 中文支持
    发现并解决Web在简体和繁体中文支持方面的问题。
    主页
    问题讨论
    尚未解决的问题中文
    GitHub: w3c/clreq
    通知列表(public-i18n-chinese):历史邮件订阅邮件列表
    内部列表: public-clreq-admin

  7. 吉兹字母支持
    发现并解决Web在吉兹字母支持方面的问题。
    主页
    问题讨论
    尚未解决的问题吉兹字母
    GitHub: w3c/elreq
    通知列表(public-i18n-ethiopic):历史邮件订阅邮件列表
    内部列表: public-elreq-admin

  8. 欧洲语言支持
    发现并解决Web在欧洲语言文字支持方面的问题。
    主页
    问题讨论
    尚未解决的问题荷兰语法语格鲁吉亚字母德语希腊字母匈牙利语
    GitHub: w3c/eurlreq
    通知列表(public-i18n-europe):历史邮件订阅邮件列表
    内部列表: public-eurlreq-admin

  9. 希伯来字母支持
    发现并解决Web在希伯来语支持方面的问题。
    主页
    问题讨论
    尚未解决的问题希伯来字母
    GitHub: w3c/hlreq
    通知列表(public-i18n-hebrew):历史邮件订阅邮件列表
    内部列表: public-hlreq-admin
    相关列表(public-i18n-bidi):public-i18n-bidi

  10. 印度语言支持
    发现并解决Web在印度语言支持方面的问题。
    主页
    问题讨论
    尚未解决的问题孟加拉文印地语古吉拉特文旁遮普语泰米尔文
    GitHub: w3c/iip
    通知列表(public-i18n-indic):历史邮件订阅邮件列表
    内部列表: public-ilreq-admin

  11. 日文支持
    发现并解决Web在日文支持方面的问题。
    主页
    问题讨论
    尚未解决的问题日文
    GitHub: w3c/jlreqw3c/jlreq-dw3c/simple-rubyw3c/ruby-t2s-req
    通知列表(public-i18n-japanese):历史邮件订阅邮件列表
    内部列表: public-jlreq-admin

  12. 蒙文支持
    发现并解决Web在蒙文支持方面的问题。
    主页
    问题讨论
    尚未解决的问题蒙文
    GitHub: w3c/mlreq
    通知列表(public-i18n-mongolian):历史邮件订阅邮件列表
    内部列表: public-mlreq-admin

  13. 东南亚语言支持
    发现并解决Web在东南亚语言文字支持方面的问题。
    主页
    问题讨论
    尚未解决的问题巴厘文字爪哇字母高棉文老挝文缅文巽他文泰文
    GitHub: w3c/sealreq
    通知列表(public-i18n-sea): 历史邮件订阅邮件列表
    内部列表: public-sealreq-admin

  14. 藏文支持
    发现并解决Web在藏文支持方面的问题。
    主页
    问题讨论
    尚未解决的问题藏文
    GitHub: w3c/tlreq
    通知列表(public-i18n-tibetan):历史邮件订阅邮件列表
    内部列表: public-tlreq-admin

已关闭的小组

  1. ITS(国际化标签集)兴趣组 主页 • 邮件列表:public-i18n-its-ig 邮件列表仍然开放,但目前在国际化兴趣组下运作。

  2. 日文布局多组联合任务团 主页 • 邮件列表:public-i18n-cjk, member-japanese-layout-en*, member-japanese-layout-ja*

  3. MLW-LT(多语言Web语言技术)工作组定义了国际化标签集(ITS)2.0。ITS 2.0为Web内容(主要是HTML5)和“深网”内容(例如生成HTML页面的CMS或XML文件)提供了元数据。元数据有助于与多语言技术和本地化过程的交互。小组开发了参考实现,成功发布了国际化标签集(ITS)2.0规范的正式推荐标准,并于2014年1月17日关闭。工作组已开始在国际化标签集兴趣组内讨论ITS 2.0的最佳实践。这是一个开放论坛,旨在围绕该领域未来可能开展的工作展开讨论。参与为ITS兴趣组wikiITS兴趣组邮件列表做出贡献。[首页] [小组章程]

  4. 国际化GEO工作组致力于通过指导方针、教育和宣传,使W3C技术的国际化技术得到更多的理解和更广泛和一致的使用。该工作组于2007年并入国际化工作组时关闭。[首页] [小组章程]

联系我们