S
国际化中容易忽略的问题

国际化中容易忽略的问题

·Shinji

各类项目的国际化处理,牵扯到语言、习俗、文化、法律、宗教等各个方面,同时需要多个部门协同,内容繁杂,注意事项极多,这里仅就开发层面一些非常容易忽视的细枝末节做说明。

语言文字

语言、文字、区域、不是一个概念

  • “汉语”,采用简体汉字书写,用于中国大陆。
  • “葡萄牙语”,采用拉丁字母书写,用于巴西。
  • “英语”,采用拉丁字母书写,用于美国。

语言切换按钮

不建议采用旗帜图标指示语言。 中国人用繁体字,就要选择台湾的“中华民国”的国旗?

  • 难以让旗帜和语言一对一映射;
  • 用户可能被迫需要选择一个他国前缀的选项;
  • 可能引起地缘政治的争议;
  • 旗帜可能随着时间的发展而被替换,有更换成本。

内容组织

由于语言大多使用不同的字符,将导致传统的分类和排序出现意外情况。换句话说,在涉及到字符排序或者首字母分组的情况下,不能仅考虑「A-Z」的规则。

大小写

某些语言里,首字母大小写是完全不同的意思,不能随意转换大小写,例如:

  • 星期三 среда,环境 Cреда;
  • 瓷器 china,中国 China;

某些语言也并没有大小写的概念。

粗体、斜体、下划线

应尽量少用这些样式,不是所有字体都内含粗体和斜体;某些类型文字并不适合下划线 (天城文)。

标点符号

  • 即便是代表同一含义的标点,在不同语言中可能有不同的展示形式或排版要求;
  • 某些标点不能放置于行首或行尾,如中文里逗号不在行首,前引号不在行尾;
  • 某些语言不使用空格作为词间间隔,如中文、日文、泰文;
  • 某些语言基本不使用或是很少使用标点符号,如泰文、印地天城文、文言文等。

将标点符号转换为本地方案,并特别注意换行时的标点位置。

货币

货币符号并不一定适合所有场景,人民币和日元的符号就非常相似,容易产生理解上的错误,推荐使用 ISO 4217 定义的货币代码。

时区

Web 端采用 SSR 方案时,服务器和客户端时区不一致,时间的显示就会出问题。

键盘

监听键盘操作时,请勿使用 event.key。 某些国家/地区使用不同的键盘布局(法国为 AZERTY),请使用 event.code

文本占位空间推荐预留长度

文本字数总体需要空间
5 汉字以内200% - 300%
5 - 10180% - 200%
11 - 15160% - 180%
15 - 25140% - 160%
25 - 35130% - 140%
36 汉字以上130%

国际化开发规范指南