所谓多语言测试,是指APP在多个使用不同语言的国家发布,则必须对多种语言支持的一种场景测试。

比如希望在Google Play上发布一个APP,提供给全球用户或者部分境外国家下载,那么就需要支持英语、泰语、韩语、阿拉伯语等等不同国家的语言。

这个图是Android用户在切换操作系统语言时的选项,而且明显这个语言列表是当地语的写法。这篇博客也以此图为例,讲讲多语言测试时的注意事项。

不同国家的语言代号不同

语言为什么要和国家有关联呢?这个其实很好理解,同样语种,各个国家的语言表达习惯和用词还是有很多差异的。

比如部分以英语为母语的国家,相应语言代号:

en:通用英语

en-us:英语(美国)

en-gb:英语(英国)

en-au:英语(澳大利亚)

en-ca:英语(加拿大)

这是中文繁体的不同地区语言代号:

zh-tw中文(中国台湾)

zh-hk中文(中国香港特别行政区)

因此为了方便开发者,系统的每种语言都有一个唯一的国家代号,同一语种也是存在代号差异的。

从代码实现角度来讲,如果需要对哪个国家支持,就在这个代号的文件夹下放置语言文件即可。

反之,如果代码里只有代号为en-us美国英语时,才有相应的翻译文件支持。那么切换系统到英国英语和通用英语时,app仍然是不显示英文的,甚至可能会直接崩溃。

Android系统和iOS系统中,语言及对应的国家关系清单,及语言文件命名的规范:可以查看这篇文章:不同国家的语言代号及value文件夹命名规范

尊重不同国家的语言习惯

尊重不同国家的语言表达习惯和书写习惯。

不同国家和地区,日期的显示习惯都会不同。

  • 中国日期:1996年3月2日
  • 英国习惯表示为:2nd March,1996
  • 美国习惯表示为:March 2,1996

用户设置了不同语言和地区时,操作系统会自动为其设定相应的日期和时间格式,如果用户在设备上选择的日期格式和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的测试

多语言的测试注意事项相关推荐

  1. android 打 aab包本地测试注意事项

    Android 打 aab包&本地测试 注意事项 打包 本地测试(windows为例) 打包 打aab包命令 //windows gradlew bundleRelease//mac ./gr ...

  2. MTK cts测试注意事项

    STS用userdebug版本 BTS扫描用user版本 google源码地址(可查询google提交记录):https://android.googlesource.com/platform goo ...

  3. 2022中国大学python语言程序设计测试六答案(北理工嵩天 、黄天羽 、礼欣)

    本文章为大家准备2022中国大学python语言程序设计答案,与教学同步,但是还是希望同学们自己可以自己写. 测试一:http://t.csdn.cn/W7fWE 测试二:2022中国大学python ...

  4. 东北大学OJ题解—1741: C语言编程测试2020-6-11-焦明海

    1741: C语言编程测试2020-6-11-焦明海 OJ:杨富超,朱明华 题目描述 编写程序,统计输出所有五位整数中符合以下条件的数字个数:最高位数字和次高位数字的和是除最高位外的各位数字的积.要求 ...

  5. c语言二级考要不要笔试,二级MS和二级C语言的一些注意事项

    原标题:二级MS和二级C语言的一些注意事项 还有一个多月计算机等级考试就要来了.小编了解到,好多同学都报了二级MS office或是二级C语言.那么,考试之前要注意什么呢?在此小编奉上二级MS和C语言 ...

  6. Android10 GSI/VTS/STS测试注意事项

    文章目录 1. GSI测试注意事项 2. VTS测试注意事项 3. STS测试注意事项 4. 待测设备的固件/状态要求 1. GSI测试注意事项 GSI(Generic System Image)是一 ...

  7. 易宝支付在线支付测试注意事项:

    易宝支付在线支付测试注意事项:1.刚开始测试支付最好使用我们提供的测试商户帐号及配套的密钥: merchantID=10000432521 keyValue=8UPp0KE8sq73zVP370vko ...

  8. c语言多实力测试,C语言 多线程测试

    1.CreateThread 在主线程的基础上创建一个新线程 2.WaitForMultipleObjects 主线程等待子线程 3.CloseHandle 关闭线程 // testThread.cp ...

  9. c语言四则运算程序报告,C语言四则运算测试程序设计报告

    <C语言四则运算测试程序设计报告>由会员分享,可在线阅读,更多相关<C语言四则运算测试程序设计报告(23页珍藏版)>请在人人文库网上搜索. 1.昆明理工大学计算机程序设计基础课 ...

最新文章

  1. Matlab与数据结构 -- 如何获取给定目录中的文件
  2. C语言函数集(十一)
  3. rfid3-micro2440,linux2.6.32.2,写成misc驱动
  4. 如何生成 Flink 作业的交互式火焰图?
  5. Java零基础入门 :(1) windows7 配置Java环境变量
  6. resnet论文解读及代码实现
  7. IONIC打包安卓遇到COM.ANDROID.SUPPORT:SUPPORT-V4错误的解决办法
  8. pytorch 中nn.MaxPool1d() 和nn.MaxPool2d()对比
  9. 那些年做过的ctf之加密篇
  10. python数据可视化毕业设计题目_python:数据可视化
  11. 无线认证web认证服务器,wifi web认证服务器地址
  12. python里使用asyncore模块
  13. css a标签去除下划线
  14. java找出命题p和q的合取_从键盘输入两个命题变元P和Q的真值-求它们的合取、析取、蕴含和等价的真值.doc...
  15. 离散数学:用python实现关系闭包的计算,即自反、对称与传递
  16. arcgis flex api 由于沙箱安全的原因 无法显示地图 的解决办法
  17. 考试用计算机反思800字,考试作弊检讨书800字(精选5篇)
  18. Android中的常见时区
  19. 任鸟飞FPS类型游戏绘制和游戏安全,反外挂研究(一)
  20. 3个赚钱思路和案例,都是暴利赚钱项目,最后一个你肯定见到过

热门文章

  1. 二分查找取中间值的计算方式
  2. 如何用Python画一只兔子——turtle库circle()画圆函数的详细用法介绍
  3. 有限元方法基础-以二维拉普拉斯方程为例(附程序)
  4. Telnet详情及Telnet的安装
  5. 蓝桥杯 算法训练 粘木棍
  6. Mac电脑安装其他系统
  7. 智能哲学:在AI前沿上人类伦理学的挑战与应战
  8. SpringMVC处理器映射器HandlerMapping
  9. 洗衣机水位传感器原理:检测水位频率
  10. Unity3D游戏作品大盘点