软件伪本地化build从字面意思来理解就是一个假的本地化build。伪本地化的英文是“Pseudo Localization”,它不是软件真正本地化,而是在源语言软件的基础上,按照一定的规则,将需要本地化的
文本使用本地化文字进行替换,模拟本地化软件的过程。
经过这种处理得到的软件的界面将包含本地化文字,看起来像本地化软件,所以称为“伪本地化”。 在进行国际化
测试时,我们需要保证被测软件有足够好的可本地化能力,也就是我前面说过的国际化测试第三级测试,用英文build是发现不了国际化测试第三级的问题的,但是国际化第三极的问题又不能等到本地化build出来再进行测试然后进行修改,等到那个时候已经太晚了,所以在国际化测试过程中就出现了伪本地化build.
伪本地化build主要是对
资源文件进行处理,给资源文件中的每一个字符串加前缀和后缀,有的时候会使用自动翻译将资源文件直接范围,然后做一个伪本地化build.
使用伪本地化build可以确定是否存在硬编码的字符串,如果所有的字符串都是增加了前缀或后缀,或用本地化字符替换了,那么运行软件时出现的英文字符串则属于不能本地化的硬编码缺陷,即这些英文字符没有包含在可以本地化的
资源文件中。
使用伪本地化build还可以发现字符扩展的问题,大家都知道,一个语言翻译到另外一个语言时,字符的长度会发生变化,如果界面上没有预留足够的空间,则会出现翻译后
字符串的裁断。在使用伪本地化build时,因为字符串在英文字符串基础上增加了前缀和后缀,长度会变长一些,如果界面上控件的长度没有考虑国际化,则很可能出现截断问题。比如button,label,dropdown list等名字或值显示不完整,影响用户阅读和使用。
使用伪本地化build进行
测试,因为在字符串在英文基础上增加了前缀和后缀,还可以发现
缓冲区溢出问题,如果你在使用伪本地化build上测试发现功能问题很可能是缓冲区溢出问题。
使用伪本地化build进行
测试,还可以发现字符串串联的问题,就是一个长字符串是根据程序运行过程中
变量的值由两个或多个字符串拼接而成,这样会影响本地化的翻译
工作。我们可以根据字符串的前缀和后缀来分析字符串,判断这类问题。
关于伪本地化build上面由于字符长度扩展引发的截断问题我们还要分不同的情况,这些问题有可能不需要修改代码,而是直接调整
资源文件就可以改好,这样,这些问题就可以直接交给本地化的工程师去做,国际化的开发就可以不去关注了,如果出现的截断问题必须通过修改代码才能修复,则必须由国际化开发人员修复。但是这种问题
测试人员不好判断,可以寻求开发人员的帮助,在做伪
本地化测试前,请开发人员分析程序UI显示是否可以通过
资源文件调整,如果可以通过资源文件调整来改变UI显示,则测试人员在
测试过程中可以不关注截断类问题,省去很多报bug的时间。
在使用伪本地化build
测试过程中也可能会发现有些问题是伪本地化build的问题,和产品本身无关,这个主要看做build的人的质量,比如字符加前后缀,很可能有些比较特殊的地方没有加上,或有问题,这些具体问题在做项目过程中要具体分析。