Android i18n - 多语言版本

更新日期: 2020-02-07 阅读次数: 1495 字数: 563 分类: Android

由于发现上架 Google Play 之后,中国区的 Android APP 无法显示 AdMob 广告,但是其他国家却非常正常。所以,我决定给 App 添加英文翻译,使其同时支持中文,和英文。

不同语言对应的文本文件

例如:

  • 中文:res/values-zh/strings.xml
  • 法语:res/values-fr/strings.xml
  • 日语:res/values-ja/strings.xml

默认文本

res/values/strings.xml

  • Android 系统获取文本的逻辑,在找不到对应语言的文本文件时,使用默认文本文件
  • 最好模式是用户量最大的语言版本,但我觉得还是英语合适,方便以后扩展

便于翻译的技巧

写明使用场景,及长度限制等。方便翻译人员做出最佳翻译。

<!-- The action for submitting a form. This text is on a button that can fit 30 chars -->
<string name="login_submit_button">Sign in</string>

如何生成本地化 strings.xml 文件

在 values 目录上右键 - New - Values resource file

Android i18n - 多语言版本

在弹出的对话框中选择 Locale,并添加到右侧

Android i18n - 多语言版本

这时会再次弹出国家代码选择框。注意,一定将该对话框拖大一点,否则没法看到所有内容。

Android i18n - 多语言版本

添加之后,就会看到多了一个中文语言标识的 strings.xml。

Android i18n - 多语言版本

而在真实目录结构下,这两个文件位于不同的目录中:

modified:   app/src/main/res/values-zh/strings.xml
modified:   app/src/main/res/values/strings.xml

除了语言,还可以选择区域

例如,同样是中文,还能选择香港,澳门,新加坡,台湾等区域,生成带区域后缀 strings.xml 文件。

考虑的很周到。但是,目前我还用不到。

如何测试

只需要在 Android 系统的设置中,修改语言即可,将需要测试的语言拖动到顶部即可。

可以立即生效,并不需要重启 Android 系统。但是需要将自己写的 APP 先干掉,然后重启点开。

注:并没有找到 Android 官方文档中提到的 Custom Locale 这个 APP。

参考文档

  • Android 官方文档 https://developer.android.com/guide/topics/resources/localization
  • Android 编程权威指南第三版
领取阿里云/腾讯云服务器优惠券

关于作者

我是来自山东烟台的一名开发者,喜欢瞎折腾,顺便记记笔记。有敢兴趣的话题,欢迎加微信 zhongwei 聊聊, 查看更多联系方式。 白天写程序,晚上哄熊孩子,可能回复有点慢,见谅。同时也欢迎关注我的微信公众号“大象工具”: 大象工具微信公众号

tags: Google AdMob 广告 Android i18n 国际化

相关文章

爱评论不评论

近期节日

2020年10月23日 霜降
2020年10月24日 联合国日
2020年10月25日 重阳节
2020年10月31日 世界勤俭日
2020年11月01日 万圣节
2020年11月07日 立冬
2020年11月08日 中国记者日
2020年11月10日 世界青年节
2020年11月11日 光棍节
2020年11月14日 世界糖尿病日
2020年11月17日 国际大学生节
2020年11月20日 国际儿童日
查看更多节日