这段时间使用国际化的时候遇到几个问题,现记录一下:
1.如果主项目中没有使用到英文的翻译,而引用的三方库中有对应的字段的英文翻译,这时会显示子项目中的英文翻译。
例如:主项目中的string.xml
里有app_name
字段,但是主项目中没有新增values-en
文件夹或里面没有对应的app_name
字段,则如果它引入的三方库中有values-en
文件夹且刚好有app_name
字段那么此项目的名字就是三方库的app_name。
如果主项目中取不到对应的英文名,就会从子项目中取,如果都没有就显示中文名。
2.很多时候显示长段文字时会有嵌入变化字符的情况,可以使用正则处理。
例如:
中文显示:“在中国会这样解决:”
对应英文:“Here’s how it works in China:”
但是这时候中国
是变化的,需要根据后台的数据显示,则可以这样处理:
string.xml - title: “在{country}会这样解决:”
en/string.xml - title: “Here’s how it works in {country}:”
那么只需要获取title
的文本,然后替换其中的{country}:
即可。