本地化软件UI部分不显示的一种可能

你是否也曾遇到过这样的情况,经过了本地化的软件UI部分不显示抑或完全不能现实?你是否也曾因此和本地化人员互相传球高达250余脚,但皮球依然还在本方半场,遑论攻门次数。造成这样现象的根本原因可谓千差万别,本文仅针对在部分UI无法正常显示的情况下,一种大概率root cause的预判。

 

现象如下,当用户进入到Prompt for Device Ownership Type页面的时候,本该出现的radio button和dropdown list都不翼而飞,落了片白茫茫大地真干净……

这里需要注意的是,红框上部的中文文字读取和显示完全正确,所以即便不读代码,逻辑上我们应该也能预判出,这应该不是本地化人员或loading string的锅,无谓的后场倒脚还是能免则免吧。

 

所以还是直接找到负责该页面的dev问问他的看法吧。一番你来我往后,dev对该问题的总结如下:

  1. 该部分数据类型不是string而是enum
  2. 该部分数据来自agent和console而不是APP的资源文件
  3. 在Combo box中的两个string未被打包进resource.resx文件中

 

这些因素确实都间接的造成了该问题的出现,但不得不说dev的这些思索依然未指向问题的病根,毕竟英文版本的显示无任何异常,这些数据类型的差别和string的来源在逻辑上都不能自圆其说。

 

再次回溯到问题的本源和良药,发现了这样的代码段。

privateconst string Employee = "Employee";
...
if(ownership.Contains(Employee))
{
    this.ShowEmployeeOwned = true;
    this.employeeOwned = ownership;
}

我们发现dev在这里想当然的认为了所有版本的Employee字段都会包含Employee,导致一旦ownership中不包含Employee,那么ShowEmployeeOwned = false。 另外我们可以做个的假设,如果中文的ownership叫做“员工-Employee”而不是单纯的中文“员工”,那么经过本地化的中文版app的该页面,ShowEmployeeOwned则会显示正常,经过验证,果然如此。

面对此种现象,个人的总结的“武断”经验如下:只要代码中包含了contains方法,同时该方法的参数又是一个静态的string,此时请务必打起十二分的精神,瞪大双眼,这里将会引入一个本地化版本软件缺陷,测试人员不用再对各个语言分别进行验证,直接报bug即可。

  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值