安卓开发,程序多语言
2015-12-07 16:55
232 查看
一个app能够多语言适配,学名国际化,这样就会显得非常高大上。
于是我也试着高大上一点。
------------------------------------------------------------------------------------------------------------
跟随系统的语言环境的变化而变化
首先可以试着看看每个语言的一些标识
private boolean isZh() {
Locale
locale = getResources().getConfiguration().locale;
String
language = locale.getLanguage();
if
(language.endsWith("zh"))
return
true;
else
return
false;
}
其中languag为语言码:
zh:汉语
en:英语
来源于:
http://blog.sina.com.cn/s/blog_7bac470701014ja9.html
可以修改上例,直接输出language,以测试所有语言的标识。
在工程的res目录下,新建一些文件夹,取名为values-xxx
例如中文的,values-zh,英文的,values-en
在这些文件夹中都建一个strings.xml(可在系统创建的xml处直接复制并粘贴到对应处)
之后在写布局xml文件的时候,类似text,hint的属性,一律使用@string/xxxx,
若在java代码中用于提示等需要多语言化的文字使用getString(R.string.xxxx);
例如:Toast.makeText(getActivity(),getString(R.string.xxx), Toast.LENGTH_SHORT).show();
基本上这样就可以做一个简单的程序多语言适配了
当系统的语言被更换了之后,系统会找到与当前语言所匹配的values文件,
例如当语言切换到中文了之后,系统会匹配values-zh里面的string,
若找到了,则会正常显示
若没找到系统会自动匹配它默认的那个valus目录,也就是创建项目时,自动创建的那个values目录里面的string
于是我也试着高大上一点。
------------------------------------------------------------------------------------------------------------
跟随系统的语言环境的变化而变化
首先可以试着看看每个语言的一些标识
private boolean isZh() {
Locale
locale = getResources().getConfiguration().locale;
String
language = locale.getLanguage();
if
(language.endsWith("zh"))
return
true;
else
return
false;
}
其中languag为语言码:
zh:汉语
en:英语
来源于:
http://blog.sina.com.cn/s/blog_7bac470701014ja9.html
可以修改上例,直接输出language,以测试所有语言的标识。
在工程的res目录下,新建一些文件夹,取名为values-xxx
例如中文的,values-zh,英文的,values-en
在这些文件夹中都建一个strings.xml(可在系统创建的xml处直接复制并粘贴到对应处)
之后在写布局xml文件的时候,类似text,hint的属性,一律使用@string/xxxx,
若在java代码中用于提示等需要多语言化的文字使用getString(R.string.xxxx);
例如:Toast.makeText(getActivity(),getString(R.string.xxx), Toast.LENGTH_SHORT).show();
基本上这样就可以做一个简单的程序多语言适配了
当系统的语言被更换了之后,系统会找到与当前语言所匹配的values文件,
例如当语言切换到中文了之后,系统会匹配values-zh里面的string,
若找到了,则会正常显示
若没找到系统会自动匹配它默认的那个valus目录,也就是创建项目时,自动创建的那个values目录里面的string
相关文章推荐
- Using Create2(Roomba 620) as your turtlebot driving base.
- Java:DocumentBuilderFactory调用XML的方法实例
- Ios和tvos按需请求资源简介
- 10个Python练手项目
- Numpy学习之 一维数组元素选取
- HDU 1027 Ignatius and the Princess II
- 第十三周项目3 Dijkstra算法
- 第十五周项目--B-树的基本操作
- PAT 1013 数素数
- 修改JAVA_HOME无效,java版本保持不变的问题解决
- AndroidStudio中使用DDMS工具
- C语言中可变参数的宏定义
- 利用pdf2swf将PDF转换成SWF
- mysql操作技巧
- 网络虚拟化之FlowVisor:网络虚拟层(上)
- UNIX时间戳(timestamp)
- 第15周项目3B-树的基本运算
- 第五章IP基本原理(续)
- Visual Studio各版本区别
- 第十四周项目一 验证折半查找