赞
踩
所谓多语言测试,是指APP在多个使用不同语言的国家发布,则必须对多种语言支持的一种场景测试。
比如希望在Google Play上发布一个APP,提供给全球用户或者部分境外国家下载,那么就需要支持英语、泰语、韩语、阿拉伯语等等不同国家的语言。
这个图是Android用户在切换操作系统语言时的选项,而且明显这个语言列表是当地语的写法。这篇博客也以此图为例,讲讲多语言测试时的注意事项。
语言为什么要和国家有关联呢?这个其实很好理解,同样语种,各个国家的语言表达习惯和用词还是有很多差异的。
比如部分以英语为母语的国家,相应语言代号:
en:通用英语
en-us:英语(美国)
en-gb:英语(英国)
en-au:英语(澳大利亚)
en-ca:英语(加拿大)
这是中文繁体的不同地区语言代号:
zh-tw中文(中国台湾)
zh-hk中文(中国香港特别行政区)
因此为了方便开发者,系统的每种语言都有一个唯一的国家代号,同一语种也是存在代号差异的。
从代码实现角度来讲,如果需要对哪个国家支持,就在这个代号的文件夹下放置语言文件即可。
反之,如果代码里只有代号为en-us美国英语时,才有相应的翻译文件支持。那么切换系统到英国英语和通用英语时,app仍然是不显示英文的,甚至可能会直接崩溃。
Android系统和iOS系统中,语言及对应的国家关系清单,及语言文件命名的规范:可以查看这篇文章:不同国家的语言代号及value文件夹命名规范
尊重不同国家的语言表达习惯和书写习惯。
不同国家和地区,日期的显示习惯都会不同。
用户设置了不同语言和地区时,操作系统会自动为其设定相应的日期和时间格式,如果用户在设备上选择的日期格式和APP代码里的格式不一致,就会导致APP无法正常显示日期和时间。
不同国家和地区,文字的阅读顺序不同。
看看两种书写方式的布局对比:
———>>>>>>>>:
所以,一个好体验的APP,当系统语言切换为阿拉伯文这种从右往左书写的语种时,APP界面应该要符合用户的文字阅读习惯。
不同国家和地区,文本书写的习惯不同
大部分软件中都有注册登录体系,并且支持用户修改昵称,有的软件会设定为昵称只允许字母、数字和下划线,不支持输入空格。这样对于英文用户来讲,是非常不合理的设计。
不同语言,应有不同的换行规则
对于中文来说,每个字都是独立的,随时可以换行。而如果把英文单词按照汉字一样处理,认为每个字母是独立的,这样就会导致单词换行显示且没有连字符,改变了单词和语句的含义。
另外英文的单词普遍比中文更长。
例如“不同”,翻译成英文是“different”,英文足足比中文多了一倍的字符长度。
不能词中换行可能导致的问题就是文字过多重叠、或者是压缩字号展示,又或者是以省略号显示了,总之都不美观。
因此,测试时要重点关注字符串长的内容,尤其是文案提示、导航栏、APP的一些ui布局空间有限的Button。
不同语言,适配的输入法不同
除了需要支持和兼容多语言的键盘,还应该在用户系统切换为泰语的时候,默认将操作系统调起的键盘切换到泰语语言输入法。
翻译人员的专业性
除了对这门语言精通以外,还要了解所翻译国家和地区的语言文化习惯,不会出现一些负面词汇。
翻译内容尽量做到言简意赅
这样可以减少很多不必要的重叠、换行、省略显示等问题,通常多语言测试的缺陷中,70%以上的问题都是因为内容过长导致的显示问题。
多语言文件和代码脱离
避免将多语言文字变量写死在代码中,最好多语言翻译和配置文件独立。
设置一种默认语言
当app识别到系统设置的语言代号并没有对应的字符信息匹配时,直接显示默认语言。通常国内可以设置为中文,海外可以设置为通用英文。
这样当用户切换到自己的语种后,即时APP代码中没有匹配的翻译时,也可显示为英文,而避免出现崩溃。
values xml文件测试代替app界面操作
通过app界面检查时,一方面由于语言多不懂,操作难度增加,操作效率降低,并且覆盖的界面太多,相当于各种语言下把app又冒烟测试一遍。如果支持40种语言,那就要冒烟四十次,测试效率极低。
而这些语言相应的内容都有对应的xml文件,xml文件也是有标准格式的,比如:
- <resources>
- <string name="title">Upload Photo</string>
- <string name="title">Choose%1$d-%5$d photo(s)</string>
- ...
- ...
- </resources>
因此,可以直接看xml文件中是否有相对于英文超长的内容,重点针对这部分内容进行UI的测试
Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。