1. 很大程度上,为什么我们能如此方便的实现国际化、分辨率匹配等?

    主要就是得益于 Android 中这种独特的资源管理方式。程序员的代码可以不直接和资源发生关系。Android 中,我们通常通过 R 文件提供的索引来间接的引用某一个资源。而如何维护资源索引和真正的资源之间的关系,这个活,却是 Android 系统来做的。

    这里面就可以大作文章了不是么?

    我说过,最了解用户手机的,不是用户也不是程序员,而是Android操作系统。它最了解用户当前使用的是什么语言,最了解用户当前手机的分辨率是多少,了解电量,了解内存情况…等等。

    既然你对自个的情况这么了解,为什么不自己把所有能完成的事情都做了?不要麻烦程序员好吧?好的,所以 Android 在这方面做得非常优秀。

    基于这个角度,我们要转换的观念为:有可能,R 文件中的索引,并非是和资源一对一的。例如我们以前认为它就一定是对应了一张图片,对应了一个字符串,对应了一个布局文件。

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

程序员可以干预的是:英文环境到底对应哪套方案?中文环境对应到底哪套方案?

OK。这就简单了。

  1. Android 中要实现国际化比较简单。

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

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

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

    中文环境为:values-zh

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

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

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

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

  2. 图片国际化

    同理。 在 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 文件中生成一个索引

==================================================================

android多国语言文件夹文件汇总如下:

中文(中国):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 ~ 国际化(多语言)相关推荐

  1. Android8.0 学习 (17)Android国际化(多语言)实现,支持8.0

    Android国际化(多语言)实现,支持8.0 前言 最近因为项目中使用了国际化,所以正好研究了下实现方法: 首先说下项目需求: 可以随着系统切换语言而切换语言,不支持的语言显示默认 用户可以选择语言 ...

  2. android国际化设置语言后不起作用,Android旋转屏幕后国际化语言失效的解决的方法...

    本文已同步至个人博客:liyuyu.cn 近期在项目中使用到了国际化多语言(英文+中文),但在使用时发现了一个问题.当屏幕旋转后.APP语言(中文)自己主动转换为了系统语言(英文).设置了Activi ...

  3. android 指定语言的资源,Android国际化多语言切换

    最近工作中突然要求要项目进行国际化,之前没遇到过.但是也很简单呀,只需要把添加一个相应语言的的strings.xml的资源文件就好了,不是吗?这样只要切换系统语言就能切换app的文字语言了. 但是由此 ...

  4. Android国际化多语言切换

    关于App国际化,之前有讲到国际化资源.字符换.布局相关,想要了解的猛戳用力抱一下APP国际化.借着本次重构多语言想跟大家聊一下多语言切换,多语言切换对于一款国际化App来讲是重中之重,并非难事,但是 ...

  5. Android国际化(多语言)实现,支持8.0

    前言 最近因为项目中使用了国际化,所以正好研究了下实现方法: 首先说下项目需求: 可以随着系统切换语言而切换语言,不支持的语言显示默认 用户可以选择语言,且不会随着系统切换语言或者应用重启而还原 虽然 ...

  6. android多语言配置,Android国际化(多语言)实现,支持8.0

    前言 最近因为项目中使用了国际化,所以正好研究了下实现方法: 首先说下项目需求: 可以随着系统切换语言而切换语言,不支持的语言显示默认 用户可以选择语言,且不会随着系统切换语言或者应用重启而还原 虽然 ...

  7. android国际化设置语言后不起作用,Android支持国际化多语言那点事(支持8.0+)

    起因 我们在开发app可能会拓展国外市场,那么对包含英语在内的其它语言支持就很有必要了. 效果 思路 一:添加相关资源文件,并引用. 二:设置configuration,configuration里面 ...

  8. Android国际化常见语言对应Values

    1.泰语:values-th 2.印地:values-hi 3.越南: values-vi 4.马来西亚:values-ms 5.阿拉伯:values-ar 6.保加利亚:values-bg 7.西班 ...

  9. Android架构篇-2 国际化多语言

    Android架构篇-2 国际化多语言 实现功能: 1.默认采用系统语言 2.语言切换后实时生效 3.支持中英文 4.我的->设置->切换语言 思路:app首次初始设置为系统语言,用户在a ...

  10. android国际化(多语言)

    1.  很大程度上,为什么我们能如此方便的实现国际化.分辨率匹配等? 主要就是得益于 Android 中这种独特的资源管理方式.程序员的代码可以不直接和资源发生关系.Android 中,我们通常通过 ...

最新文章

  1. 前端小哥玩HTML复选框上瘾,能画logo做视频,还开源成JS库
  2. 【控制】多智能体系统总结。5.系统合并。
  3. 2015年你必须学习的编程语言和前端框架
  4. 数组——寄包柜(洛谷 P3613)
  5. sqlserver随机取记录
  6. 正在成为史上最全分类 Android 开源大全
  7. 剑指OFFER之包含min函数的栈(九度OJ1522)
  8. 微软silverlight视频教程
  9. python复制文件夹不阻塞_Python线程,线程不阻塞
  10. jasypt加密_【Jasypt】给你的配置加把锁
  11. 利用python3将word批量转换成pdf
  12. 十分钟理解线性代数的本质_十分钟理解线性代数的本质
  13. Anaconda, Spyder更新导致Spyder环境奔溃
  14. Photoshop抠头发丝超简单方法 PS抠头发
  15. 基于vue的图片上传预览插件
  16. DDD之实体与值对象
  17. ZB级的大数据探索与应用实践【附PPT】
  18. 2年5个月13天,从外包到拿下阿里offer,没想到屌丝也能有今天
  19. Screaming Frog SEO Spider Mac(尖叫青蛙网络爬虫软件)
  20. 数据结构课程设计论文--学生信息管理系统

热门文章

  1. 软件工程-软件需求规格说明书模板
  2. pythonista安卓_Android平台有哪些软件类似于iOS上的JSbox、Pythonista和Thor?
  3. 基于Java JAAS表单的身份验证
  4. 2021FME博客大赛 —— 基于FME的土地利用与夜光遥感数据综合统计
  5. 2020FME博客大赛——FME在农村地籍调查项目中应用
  6. 分享个B端竞品分析报告
  7. JAVA疯狂讲义 第四版 课后习题 第四章 4.5
  8. 微信小程序商城毕业设计毕设作品(8)毕业设计论文
  9. 电脑桌面计算机分区不显示,win10硬盘分区不见了怎么办_win10电脑硬盘分区不见了如何恢复...
  10. 深信服虚拟桌面部署及性能优化关键点配置(图文顺序全解)