Android 国际化

来源:互联网 发布:淘宝折扣券是真的吗 编辑:程序博客网 时间:2024/05/21 09:25

一.写一个Activity页面

<LinearLayoutxmlns:android="http://schemas.android.com/apk/res/android"

xmlns:tools="http://schemas.android.com/tools"

android:layout_width="fill_parent"

android:layout_height="fill_parent"

android:orientation="vertical">


<TextView

android:layout_width="fill_parent"

android:layout_height="wrap_content"

android:text="@string/textView"/>

<Button

android:layout_width="wrap_content"

android:layout_height="wrap_content"

android:text="@string/button"/>


</LinearLayout>


二.res/values/strings.xml文件中写入以下代码

<?xmlversion="1.0"encoding="utf-8"?>

<resources>


<stringname="app_name">I18nApp</string>

<stringname="action_settings">Settings</string>

<stringname="textView">internationalization</string>

<stringname="button">submit</string>


</resources>


三.现在运行应用程序

结果如图所示:



此时的应用显式的文字语言为默认语言


四.现在在res文件夹下创建两个新的文件夹

values-en

values-zh

然后把values文件夹中的strings.xml拷贝到这两个文件夹中,并把values-zh中的strings.xml改为如下代码:

<?xmlversion="1.0"encoding="utf-8"?>

<resources>


<stringname="app_name">国际化应用</string>

<stringname="action_settings">Settings</string>

<stringname="textView">国际化</string>

<stringname="button">提交</string>



</resources>

五.此时重新部署应用,并把模拟器语言其换成中文简体,观察结果


问题:比如,有很多国家都说英语,我想实现美国英语应该怎么做国际化?

答:美国在国际化中用的英文字母是US,我们可以在res文件夹下创建一个values-en-rUS文件夹,然后把values-en文件夹下的strings.xml文件考进去,并修改为如下代码:

<?xmlversion="1.0"encoding="utf-8"?>

<resources>


<stringname="app_name">I18nApp(US)</string>

<stringname="action_settings">Settings</string>

<stringname="textView">internationalization(US)</string>

<stringname="button">submit(US)</string>



</resources>


再部署应用,并把语言环境改为美式英语,观察结果


到此不仅实现了国际化而且实现了多语言的国际化

问题:我想实现图片的国际化怎么办?

答:在res文嘉夹下创建drawable-en文件夹和drawable-zh文件夹,然后在这两个文件夹中分别放入如下两个图片:

   

在activity_main.xml加入如下代码:

 

<ImageButton

android:layout_width="wrap_content"

android:layout_height="wrap_content"

android:src="@drawable/picture"

android:contentDescription="@string/contentDescription"/>

//最后一行没有什么用处,只是作为备注,不会在页面上显示,因为这里加了一个对stringscontentDescription的引用,所以要在strings.xml文件中添加一行

//当然,最后一行不加也可以,只不过会出现一个警告


在strings.xml文件中加入一行代码:

<stringname="contentDescription">picture</string>

再次部署项目观察结果

中文环境为:


英文环境为:


到此图片国际化也已经实现


原创粉丝点击