wangpin34 / blog

个人博客, 博文写在 Issues 里
5 stars 0 forks source link

应用国际化时,必须知道的几件事 #23

Open wangpin34 opened 6 years ago

wangpin34 commented 6 years ago

确定需要国际化的文本资源

在真正实现国际化之前,首先要整理对应的文本资源。一般来说,需要在应用端国际化的部分,包含标题,标签,表单名称,图片上的描述,等等静态的文字资源。工程师需要将这些文字资源整理成文件,交给专业的译员,制作资源文件。有些文本信息是由其他后台服务提供,因此对应的后台服务也要国际化。这一部分不在本文讨论范畴。

将最终决定权交给用户

许多应用根据用户设备上的系统语言设置来确定app应该显示的语言,这样做的好处是用户不需要再去选择,但坏处也是显而易见的:如果错了怎么办? 更好的办法是,在保留推荐一种语言的基础上,告知用户“您依然有选择另一种语言的权利”。尤其是用户设备的语言还不被app支持的时候,请用户自己选择第二种可以使用的语言,是最简单有效的方式。

考虑习俗差异

不同国家或者地区的差异不仅仅是语言,还有各种习俗。比如姓名,中国人的习惯是姓在前,名在后,而很多欧美国家正好相反。又比如,中国人的日期习惯是年月日,而美国的习惯是日月年。相似的还有货币。

不要拼装字符串

永远不要尝试将几个单词拼成一句话。很有可能这在英语环境下成立,在别的语言下查看就是完全不可阅读。

界面是否能兼容长度差距较大的文本

同样的内容,用不同的语言来表述,文本差距可能非常大。比如,英文和德文关于 reset password。

图.jpg

UI设计和实现过程中应该尽早的考虑这种差异,并使用比较周全的方案。

阅读习惯的差异,从左到右,或者从右到左

大部分国家的文字顺序是从左到右,但有些国家恰恰相反,比如阿拉伯。html支持 dir 属性来配置不同的文字方向,可选值为 ltr(从左到右) 和 rtl(从右到左)。但一些 css 的布局属性并不会参考dir 的值。所以,如果想要给习惯从右到左阅读的用户提供较好的体验,应该提供专用的 css。

记得国际化标点符号

比如中文的句号 和英语的句号 . 。解决的办法很简单,即,将标点符号也纳入国际化的资源文件中。

文字间距,空格

不同语言对文字空间的要求也不一样。比如法语就习惯在冒号中留一个空格。德语要比英语的文字间隔大。

参考