美文网首页Android日记android百科Android收藏
AS下 Android代码资源的国际化

AS下 Android代码资源的国际化

作者: jackLee | 来源:发表于2016-03-14 13:36 被阅读4196次
  • 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.
    国际化.png
    2.在各个values对应的文件夹下新建一个strings.xml的source文件,以key-values的方式存入自己业务需求的字符串。注意:各个strings下的key值是相同的。如下图:
Paste_Image.png

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


Paste_Image.png
  • 常见的语言缩写


    常见语言缩写.png

最佳实践:

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

error.png

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

Paste_Image.png

一键化国际化

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

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

参考文档


依赖包

相关文章

  • AS下 Android代码资源的国际化

    Android 国际化:internationalization (国际化)简称 i18n,因为在i和n之间还有1...

  • Android 代码资源的国际化

    1. 什么是Android 代码资源的国际化 顧名思義 :就是你的App 要在国际市场使用,那么全球那么多种语言,...

  • SSM项目-医药采购-04 国际化

    一、国际化 读取资源文件 对代码进行封装

  • 国际化

    demo storyboard中的文字 代码中的文字 app名称的展示 资源文件的国际化 国际化脚本 国际化原理 ...

  • Android 8.0 资源国际化适配

    前言 Android 8.0 发布已经有一段时间了,本文不讲新功能,讲讲资源国际化方面 Android 8.0 的...

  • Android原生国际化

    Android原生国际化支持随系统默认语言选择,相关代码如下: public LocalegetSysLocale...

  • Android资源访问

    Android资源访问 一、资源访问:【掌握】(一)、概念:Android中的资源是指可以在代码中使用的外部文件,...

  • Android代码国际化

    常见的语言缩写有: 第一步:现在res文件下新建一个国际化文件,需要哪种就用哪种取名字: 第二步:在代码中设置: ...

  • Android 国际化(多语言)兼容8.0

    前言 Android中实现国际化相对来说还是简单的,因为Android有很独特的资源管理方式,我们可以很轻松的创建...

  • 0.1 应用基础

    Android 应用采用 Java 编程语言编写代码,Android SDK 工具将代码(连同任何数据和资源文件)...

网友评论

  • 谢耀眼:安装到本地,装不上去啊
  • aa3812f1202c:插件有很多错~不好用
  • Jimmy5Zhang:我用这个插件Android Localization国际化的时候报了lugin Error: Android Localizationer threw an uncaught IllegalStateException,这个问题怎么解决呢?你有遇到过吗?
    325285183a69:@Jimmy5Zhang 解决了吗?
    781b8d8fcfd5:@Jimmy5Zhang Plugin Error: Android Localizationer threw an uncaught NullPointerException.我的是这个错
    781b8d8fcfd5:@Jimmy5Zhang 我也遇到了 不知道怎么解决的 你解决了吗

本文标题: AS下 Android代码资源的国际化

本文链接:https://www.haomeiwen.com/subject/jzeflttx.html