梦书之家(移动开发)

你有一个苹果,我有一个苹果,我们交换一下,一人还是一个苹果;你有一个思想,我有一个思想,我们交换一下,一人就有两个思想。 ——肖伯纳

导航

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文件夹--作为默认的资源,不向其他的平台会自动将英文作为默认的加载资源。

因此,在代码中千万不要直接写文案,如果那样的话,一是,修改起来不太方便,另外就是移植到其他语言平台上要耗费很大的精力。

posted on 2010-08-25 15:51  梦书  阅读(1257)  评论(0编辑  收藏  举报