Android的多语言实现

文章转自:http://blog.csdn.net/barryhappy/article/details/23436527
以前就知道Android的多语言实现很简单,可以在不同的语言环境下使用不同的资源什么的,但是一直没有实际使用过。 最近公司的项目要用到多语言于,是就研究了一下——果然很简单啊。

要使用多语言,首先肯定要有为不同语言准备的资源。

只需要按照Android提供的规范,对不同语言下的资源文件夹进行对应的命名即可。
比如我们知道/valus是Android的默认简单资源(字符串、数值、颜色等)的文件夹,那么对不同语言下提供的values文件夹命名方式就形如:

/values-zh
/values-zh-rCN
/values-zh-rTW

  • 其中values保持不变;
  • 后缀的zh表示语言;
  • 后缀的rCN、rTW其中‘r’是一个标记,表示后面跟着的CN、TW是国家或地区标志。
所以以上三个资源文件夹表示所对应的语言环境分别为:

中文
中文-中国 (即中文简体)
中文-台湾 (即中文繁体)

默认情况下,Android会根据系统的语言地区设置,自动选择对应的资源。

会首先尝试语言地区全匹配,如果没有权匹配的资源包,则会尝试匹配语言,最后则会取默认的。
比如如果Android系统的语言地区是中文简体,则首先会尝试从/values-zh-rCN中获取资源,如果没有此文件夹或者文件夹中没有响应的资源,则会尝试/values-zh,都获取不到的情况下即从/values中获取。
/values是必须存在的,否则不能通过编译

当然,也可以在代码中手动进行控制,指定所选择的语言:

[java] view plaincopyprint?在CODE上查看代码片派生到我的代码片
  1. Configuration config = getResources().getConfiguration();//获取系统的配置  
  2. config.locale = Locale.TRADITIONAL_CHINESE;//将语言更改为繁体中文  
  3. getResources().updateConfiguration(config, getResources().getDisplayMetrics());//更新配置  

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/544866.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

java 根据类名示例化类_Java即时类| minusNanos()方法与示例

java 根据类名示例化类即时类minusNanos()方法 (Instant Class minusNanos() method) minusNanos() method is available in java.time package. minusNanos()方法在java.time包中可用。 minusNanos() method is used to subtract the given duration in nanoseconds from this…

厉害了,自己手写一个Java热加载!

热加载:在不停止程序运行的情况下,对类(对象)的动态替换。Java ClassLoader 简述Java中的类从被加载到内存中到卸载出内存为止,一共经历了七个阶段:加载、验证、准备、解析、初始化、使用、卸载。接下来我们…

php相应的扩展的对应链接地址

window下memcached安装:http://code.jellycan.com/memcached/ memcached.exe -m 15 -p 11211开启服务转载于:https://www.cnblogs.com/jakentec/p/4496828.html

duration java_Java Duration类| toMinutes()方法与示例

duration javaDuration Class toMinutes()方法 (Duration Class toMinutes() method) toMinutes() method is available in java.time package. toMinutes()方法在java.time包中可用。 toMinutes() method is used to convert this Duration into the number of minutes. toMin…

Android 如何让EditText不自动获取焦点

文章转自:http://www.cnblogs.com/error404/archive/2012/12/28/2837294.html 在项目中,一进入一个页面, EditText默认就会自动获取焦点。那么如何取消这个默认行为呢?在网上找了好久,有点 监听软键盘事件,有点 调用 c…

公司新来的小可爱,竟然把内存搞崩了!

ThreadLocal使用不规范,师傅两行泪组内来了一个实习生,看这小伙子春光满面、精神抖擞、头发微少,我心头一喜:绝对是个潜力股。于是我找经理申请亲自来带他,为了帮助小伙子快速成长,我给他分了一个需求&…

理解Node.js的event loop

为什么80%的码农都做不了架构师?>>> 关于Node.js的第一个基本概念是I/O操作开销是巨大的: 所以,当前变成技术中最大的浪费来自于等待I/O操作的完成。有几种方法可以解决性能的影响: 同步方式:按次序一个…

硬核|定时任务的10种实现方案,满足你的不同需求!

最近有几个读者私信给我,问我他们的业务场景,要用什么样的定时任务。确实,在不用的业务场景下要用不同的定时任务,其实我们的选择还是挺多的。我今天给大家总结10种非常实用的定时任务,总有一种是适合你的。一. linux自…

字符串分割--java中String.split()用法

文章转自:http://yangzb.iteye.com/blog/1824761 在java.lang包中有String.split()方法,返回是一个数组。 1、 “.”和“|”都是转义字符,必须得加"\\"; 如果用“.”作为分隔的话,必须是如下写法: String.s…

duration java_Java Duration类| 带示例的dividBy()方法

duration java持续时间类divideBy()方法 (Duration Class dividedBy() method) dividedBy() method is available in java.time package. splitBy()方法在java.time包中可用。 dividedBy() method is used to divide this Duration by the given parameter (divisor) (i.e. thi…

IP子网划分

IP和子网掩码我们都知道,IP是由四段数字组成,在此,我们先来了解一下3类常用的IPA类IP段 0.0.0.0 到127.255.255.255 (0段和127段不使用)B类IP段 128.0.0.0 到191.255.255.255C类IP段 192.0.0.0 到223.255.255.255XP默认分配的子网掩码每段…

Semaphore自白:限流器用我就对了!

作者 | 王磊来源 | Java中文社群(ID:javacn666)转载请联系授权(微信ID:GG_Stone)大家好,我是 Semaphore,我的中文名字叫“信号量”,我来自 JUC 家族(java.uti…

机房合作—我是组长

五一期间开始机房合作,到现在一个多星期了。我,蕾蕾,亮亮一组,我担任组长一职。在着手准备项目开始之前,我们听取了各位师父的一些建议,也算是给我们指明一下方向。第一天晚上,我召开了我们项目…

golang的new函数_new()和make()函数以及Golang中的示例

golang的new函数In Golang, to allocate memory, we have two built-in functions new() and make(). 在Golang中,要分配内存,我们有两个内置函数new()和make() 。 1)new()函数 (1) new() function) Memory returned by new() is zeroed. new()返回的内…

Android Activity和Intent机制学习笔记

文章转自:http://www.cnblogs.com/feisky/archive/2010/01/16/1649081.html Activity Android中,Activity是所有程序的根本,所有程序的流程都运行在Activity之中,Activity具有自己的生命周期(见http://www.cnblogs.com…

scala中字符串计数_如何在Scala中创建一系列字符?

scala中字符串计数The range is a set of data from a lower value to a larger value. In Scala, we have an easy method to create a range using to keyword. 范围是从较低值到较大值的一组数据。 在Scala中,我们有一种使用to关键字创建范围的简单方法。 Synta…

多域名解析到同一网站C的php重定向代码

在index.php最前面加上以下代码&#xff1a; <?php if(strpos($_SERVER[HTTP_HOST],afish.cnblogs.com)false){#header(Location: http://afish.cnblogs.com/);echo <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org…

android 中 gravity 和 layout_gravity 的区别

文章转自&#xff1a;http://blog.csdn.net/feng88724/article/details/6333809 在进行UI布局的时候&#xff0c;可能经常会用到 android:gravity 和 android:layout_Gravity 这两个属性。 关于这两个属性的区别&#xff0c;网上已经有很多人进行了说明&#xff0c;这边再简…

线程的故事:我的3位母亲成就了优秀的我!

作者 | 王磊来源 | Java中文社群&#xff08;ID&#xff1a;javacn666&#xff09;转载请联系授权&#xff08;微信ID&#xff1a;GG_Stone&#xff09;声明&#xff1a;本故事纯属虚构&#xff0c;如果雷同那就是真事了&#xff01;大家好&#xff0c;我是线程&#xff0c;我的…

c ++查找字符串_C ++结构| 查找输出程序| 套装3

c 查找字符串Program 1: 程序1&#xff1a; #include <iostream>#pragma pack(1)using namespace std;typedef struct{int A;int B;char c1;char c2;} S;int main(){cout << sizeof(S);return 0;}Output: 输出&#xff1a; In a 32-bit system: 10In a 64-bit sy…