Android 程序多语言国际化


Android 适配简单

Android App 多语言适配十分简单,很多程度上,不仅仅是语言适配,比如分辨率适配什么的是可以比较方便的适配。这主要得益于 Android 中这种独特的资源管理方式。程序员的代码可以不直接和资源发生关系。Android 中,我们通常通过 R 文件提供的索引来间接的引用某一个资源。而如何维护资源索引和真正的资源之间的关系,这个活,却是 Android 系统来做的。

Android 系统是十分了解自己的,在适配这方面做得非常优秀,基于这个角度,我们要转换的观念为:有可能,R 文件中的索引,并非是和资源一对一的。例如我们以前认为它就一定是对应了一张图片,对应了一个字符串,对应了一个布局文件。

而有的时候很可能,Android 其实会根据用户当前使用的环境对应几套方案:例如本文所讲的主题,从国际化角度,可能对应中文环境方案,英文环境方案?那么,这时候 R 文件对应的这个资源便不确定起来,当我们通过 R 文件调用一个图片资源显示在窗口上时,Android 操作系统会自动根据用户当前的环境,而选用最合适的图片(这个挑选过程却是透明的)。


实现多语言国际化

字符串国际化:只要在 res 文件夹下新建对应语言的 values 文件夹就好了,

如,英语环境下的,文件夹命名为:values-en

美国英文环境:values-en-rUS

中文环境为:values-zh

大陆地区中文环境: values-zh-rCN

在 Android Studio 下新建 Android 项目时,会在 res 目录下自动创建一个默认语言环境的文件夹 : values

当某一个资源没有在语言环境的对应的资源集合中找到时,就会使用 values 下的资源。

若某一个语言环境没有在项目中定义语言环境,那么也会使用 values 下的资源。

文件夹类型汇总

  • 中文
    中文(中国):values-zh-rCN
    中文(台湾):values-zh-rTW
    中文(香港):values-zh-rHK
  • 英语
    英语(美国):values-en-rUS
    英语(英国):values-en-rGB
    英文(澳大利亚):values-en-rAU
    英文(加拿大):values-en-rCA
    英文(爱尔兰):values-en-rIE
    英文(印度):values-en-rIN
    英文(新西兰):values-en-rNZ
    英文(新加坡):values-en-rSG
    英文(南非):values-en-rZA
  • 其他语言
    阿拉伯文(埃及):values-ar-rEG
    阿拉伯文(以色列):values-ar-rIL
    保加利亚文: values-bg-rBG
    加泰罗尼亚文:values-ca-rES
    捷克文:values-cs-rCZ
    丹麦文:values-da-rDK
    德文(奥地利):values-de-rAT
    德文(瑞士):values-de-rCH
    德文(德国):values-de-rDE
    德文(列支敦士登):values-de-rLI
    希腊文:values-el-rGR
    西班牙文(西班牙):values-es-rES
    西班牙文(美国):values-es-rUS
    芬兰文(芬兰):values-fi-rFI
    法文(比利时):values-fr-rBE
    法文(加拿大):values-fr-rCA
    法文(瑞士):values-fr-rCH
    法文(法国):values-fr-rFR
    希伯来文:values-iw-rIL
    印地文:values-hi-rIN
    克罗里亚文:values-hr-rHR
    匈牙利文:values-hu-rHU
    印度尼西亚文:values-in-rID
    意大利文(瑞士):values-it-rCH
    意大利文(意大利):values-it-rIT
    日文:values-ja-rJP
    韩文:values-ko-rKR
    立陶宛文:valueslt-rLT
    拉脱维亚文:values-lv-rLV
    挪威博克马尔文:values-nb-rNO
    荷兰文(比利时):values-nl-BE
    荷兰文(荷兰):values-nl-rNL
    波兰文:values-pl-rPL
    葡萄牙文(巴西):values-pt-rBR
    葡萄牙文(葡萄牙):values-pt-rPT
    罗马尼亚文:values-ro-rRO
    俄文:values-ru-rRU
    斯洛伐克文:values-sk-rSK
    斯洛文尼亚文:values-sl-rSI
    塞尔维亚文:values-sr-rRS
    瑞典文:values-sv-rSE
    泰文:values-th-rTH
    塔加洛语:values-tl-rPH
    土耳其文:values–r-rTR
    乌克兰文:values-uk-rUA
    越南文:values-vi-rVN

适配之后再Android Studio中就会变成这种效果:

PS:图片国际化

同理。

在 res 下新建 drawable-zh 文件夹,存放中文环境下的图片

新建 drawable-en 作为英语环境下的图片

在 eclipse 下新建 Android 项目时,会在 res 目录下自动创建三个默认语言环境的文件夹:

drawable-hdpi
drawable-ldpi
drawable-mdpi

分别用于存放高、中。低分辨率的图片。Android 系统会根据手机的分辨率,而自动从不同的对应的某一个文件夹下去加载图片。

同样,它们也可以国际化,命名规则如:

drawable-zh-hdpi
drawable-en-ldpi
drawable-en-rUS-mdpi

使用。在 XML 中需要使用到图片的地方用表达式:

@drawable/icon

代码中使用:R.drawable.icon。因为图片资源同样也会在 R 文件中生成一个索引

更多相关文章

  1. Android(安卓)环境搭建
  2. Android开发环境搭建
  3. 使用NetBeans搭建Android开发环境
  4. Android(安卓)流式布局FlowLayout(搜索历史),多布局、删除、添加
  5. 第一章 andriod studio 安装与环境搭建
  6. Android——开发环境
  7. Android之adb环境变量配置
  8. android 目录结构,adb环境变量配置
  9. Android(安卓)常用RGB值以及中英文名称

随机推荐

  1. android 4.0 sdk 源码放出 本人亲自打包
  2. Android(安卓)自定义View自定义属性的声
  3. android menu详解
  4. android 条形码的应用
  5. Android开发人员的10大抱怨
  6. Android基础笔记(一)-快速入门
  7. Android样式开发——layer-list篇
  8. Android应用程序请求SurfaceFlinger服务
  9. Android(安卓)Measure 体系简单总结
  10. Android实现全屏显示的方法 固定横屏或者