AS下 Android代码资源的国际化

  • Android 国际化:
    • internationalization (国际化)简称 i18n,因为在i和n之间还有18个字符,localization(本地化 ),简称L10n。

  • 实现国际化的原理:将UI和字符资源进行分离:
  • 把UI中的字符串存储在外部文件,通过代码提取,这是一种很好的做法。
  • Android可以通过工程中的资源目录轻松实现这一功能。
  • 比如:(TextView)findViewById(R.id.helloworld).setText(getRes);

  • 实现方式
    为支持多国语言,在res/中创建一个额外的values,目录以连字符和ISO国家代码结尾命名,比如values-es/是为语言代码为"es"的区域设置的简单的资源文件的目录。Android会在运行时根据设备的区域设置,加载相应的资源。
    具体步骤
    1.创建values-xx的文件夹,比如values-zh-rCN,values-fr.

2.在各个values对应的文件夹下新建一个strings.xml的source文件,以key-values的方式存入自己业务需求的字符串。注意:各个strings下的key值是相同的。如下图:

 

 3.字符资源的使用:分为两种:1.在布局文件中使用,2.在代码中调用,使用方法如下图

常见的语言缩写

 

 

最佳实践:

我在项目开发中,使用资源国际化,然后在res/文件夹下添加了一个values-zh-cn的文件夹,并添加了string.xml的资源文件,但是运行项目出现了如下错误:values-zh-cn是一个无效的文件夹。



 

 解决办法:
将文件夹名称改为values-zh-rCN,编译运行没有什么问题:

一键化国际化

上面使用的是手动的资源国际化,对于中英文转换等少数语言的国际化比较方便,但是当需要国际化的语言很多时就会很麻烦,这里我们使用一个AndroidStudio的插件:AndroidLocalizationer实现资源一键国际化。
使用方法:

  • 下载AndroidLocalizationer
  • 添加本地磁盘上的插件
  • 重启Android studio
  • 在strings.xml文件中右键

参考文档


依赖包

 



作者:jackLee
链接:https://www.jianshu.com/p/535cb6071b64
来源:简书
著作权归作者所有。商业转载请联系作者获得授权,非商业转载请注明出处。

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值