Android语言世界化的过程中遇到的阿拉伯语波斯语的问题总结如下:
ID | 共有问题 | 解决办法 |
1 | 阿语,波斯语下,所有界面字串靠右对齐,布局与英文下左右相反 | 在AndroidManifest文件中加入android:supportsRtl="true" |
2 | 字串翻译不正确 | 找到字串的资源文件替换正确的,尤其是组合起来的字串请注意字串的组合顺序 |
3 | 带有括号的字串,括号方向显示不对和字串显示乱码问题 | 向MTK申请patch解决 |
4 | %,数字本地化,且%要显示在数字左侧 | %如果不在资源文件中,找到代码中的String,通过replace函数替换成正确的,数字可以用String.format("%d",var)转化,(var就是代码中的变量) |
5 | 时间单位和数据流量单位本地化 | 这些单位如果在代码中写死,我们可以通过判断语言来,在阿语,波斯语下添加自定义的资源,再在代码中调用 |
6 | 数字顺序显示相反,如123显示为321 | 向MTK申请patch |
7 | 带有方向的图标需要让UI做下,左右相反重新合入 | 重新作图后,新建drawable-ar-hdpi,将图片放入即可 |
8 | 所有浮点数的“.”显示为“,” | 不要直接修改ICU资源,会导致CTS fail,可以在上层通过replace函数将“.”替换为“,”这个工作量比较大,或者咨询下mtk |
9 | 阿语,波斯语的时间小时和分钟顺序相反 | 一般是由于加入RTL属性后引起的,我们可以在时间显示对应的布局文件中加入android:layoutDirection="ltr" |
10 | 周,月份,AM,PM显示不对 | 修改对应语言的ICU资源,具体方法可在mtk onlie上查找 |
11 | 进度条与英文下保持一致,从左到右 | 如果是从右到左的,我们可以找到滚动条的布局文件加入android:layoutDirection="ltr" |
Phone,MMS,Contacts | ||
1 | 带有“+”号的号码,顺序显示不对 | 在号码对应的代码左右两端加入'\u202D'和'\u202C' |
2 | 拨号盘界面,阿语,波斯语联系人名称匹配错误 | 要修改很复杂,建议将阿语,波斯语联系人匹配功能直接去掉 |
3 | 拨号盘界面,按键上的数字和字母应该本地化 | 让华为提供参考截图,给UI重新制作后替换 |
4 | 拨号盘界面,输入顺序与显示顺序不一致 | 找到输入号码的代码,在号码两端加入'\u202D'和'\u202C' |
5 | 联系人界面,阿语和波斯语,联系人名称与编辑界面的名称显示顺序相反 | 在联系人界面判断如果联系人没有名称,只有号码则在号码两端加入'\u202D'和'\u202C' |
6 | 短信中,输入带有英文符号的阿语,波斯语,发送后显示异常 | 向MTK申请patch |
7 | 短信主界面,调整从右到左布局后,发件人名称消失,布局错乱 | 加入RTL属性后,布局紊乱导致,找到资源文件重新调整 |
Settings | ||
1 | Wifi,BT统一翻译或者统一不翻译 | 在做LT的时候,让专家统一,建议都不翻译 |
2 | 应用权限说明很多未翻译 | 这些字串在frameworks/base/core/res/res/,都有两个一个是tablet,另一个是default,一般是tablet翻译了,而default还是英文,将tablet翻译的字串拷过来就可以了 |
3 | 华为隐私和版权说明的翻译和排版问题 | 如有问题尽早让华为处理 |
4 | 时区信息翻译和显示错误 | 让专家重新提供翻译,量比较大 |
Camer & Gallery | ||
1 | 录像界面时间和剩余张数数字本地化 | 找到调用数字的代码,用String.format格式化一下 |
2 | 图片编辑界面,所有排版靠右对齐 | 布局问题比较多,调起来比较费时间 |
Calendar & Clock | ||
1 | 日历主界面和新建时间界面,布局靠右和数字当地化问题 | 布局和数字当地化问题很多,建议与805对比 |
2 | 闹钟界面,单位时分秒要放在数字的左侧 | 调整难度大,建议放到最后,或者沟通不改 |
3 | 关机闹钟界面,时间显示错乱 | 找到布局文件调整即可,难度不大,需要注意 |
Browser | ||
1 | 阿语,波斯语下,不连接网络进入浏览器将网页保存,离线阅读显示为乱码 | 向MTK申请patch |
FM & Recorder | ||
1 | FM的频率数字不要翻译,保持与英文一致,否则会导致Crash | 专家会要求翻译,在测试FM模块的时候与专家沟通不改 |
2 | 当存储空间不足时,录音剩余可用时间提示字串,分钟和秒显示反了 | 组合字串,细心点多调整几次 |
FileManager | ||
1 | 文件管理的标题栏要求改成从右到左滚动 | 加入RTL属性后会从右到左滚动,但是会乱掉,需要让UI重新制作分隔符的图片 |
Idle & Launcher | ||
1 | Idel界面,移除应用,查看应用信息,最上面的提示图片要显示在字串的右边 | 找到布局对调即可 |
2 | 状态栏的提示要靠右显示 | 在SystemUI加入RTL属性,并且显示的提示语要以阿语,波斯语开头,如果不是这样,让专家重新给下翻译 |
3 | Widget界面,widget的大小需要当地化 | 找到调用数字的代码,用String.format格式化一下 |
4 | 锁屏界面,充电提示和时间日期显示错乱 | 调整难度不大,方法前面都有介绍,需要注意不插卡,插单卡,双卡时候界面的显示 |
注意: | ||
1.阿语,波斯语属于变形的字串,在做LT测试时,专家给出的字串需要在编辑状态下拷贝,否则拷出来的是错误的 | ||
2.俄语LT问题修改难度不大,有一点需要注意就是俄语不同语境下,同一字串的翻译很有可能不一样,如phone storage和SD card,需要添加字串资源,修改代码逻辑 | ||
3.LT测试报出的问题,如果需要修改代码,最好先判断当前的语言环境再做修改,避免对其他语言造成影响 | ||
4.多种语言同时开始LT测试时,一定要要求测试使用相同格式的Excel,测试模块分类也要保持一致,否则后面很难分类统计 | ||
5.LT测试专家如果反馈某句话中的某个词错误,一定要让专家给出整个句子的翻译,只给出单个词的话,我们不知道从哪里截取 |