这段时间使用国际化的时候遇到几个问题,现记录一下:

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}:​​即可。