Android学习笔记4之支持国际化
Android支持国际化比较简单,只要定义多个资源即可,如下图所示(字符串资源):
以上的字符串资源,可以支持英文与中文。
values-en 下的strings.xml
<?xml version="1.0" encoding="utf-8"?> <resources> <string name="btn1">Exit</string> <string name="hello">Hello World, My Name is Robin.Liu!</string> <string name="app_name">HelloWorld</string> <string name="about">about</string> <string name="option">option</string> <array name="mobile_platform"> <item>Windows Mobile</item> <item>BREW</item> <item>Symbian</item> <item>Android</item> </array> </resources>
values-zh 下的strings.xml
<?xml version="1.0" encoding="utf-8"?> <resources> <string name="btn1">退出</string> <string name="hello">您好, 我的名字是 Robin.Liu!</string> <string name="app_name">世界,您好</string> <string name="about">关于</string> <string name="option">选项</string> <array name="mobile_platform"> <item>Windows Mobile</item> <item>BREW</item> <item>Symbian</item> <item>Android</item> </array> </resources>
在程序里调用:
Resources res = this.getResources(); String[] arr = res.getStringArray(R.array.mobile_platform); ... ... TextView tv = (TextView)findViewById(R.id.textview); tv.setText(R.string.about); //甚至也可以在其他的XML中进行引用
看,程序里面根本不用考虑当前系统的语言,Android系统会自动调用相应的字符串资源。
另外需要注意的是: 安装以上的设置,如果当前的语言为德语什么的,运行的时候就会发生没有找到相应的资源的错误,因此最好还需要定义一个values文件夹--作为默认的资源,不向其他的平台会自动将英文作为默认的加载资源。
因此,在代码中千万不要直接写文案,如果那样的话,一是,修改起来不太方便,另外就是移植到其他语言平台上要耗费很大的精力。