Android-语言国际化

时间:2022-10-29 11:18:17

Android-语言国际化

参考

http://www.loc.gov/standards/iso639-2/php/code_list.php 各国语言表

Overview

Internationalization(国际化),又名I18n(因为这个单词的开头 I 和结尾 n 只有有18个字母),与国际化相对的还有Localization(本地化),又名L10n(命名缘由相同)。

Android 语言国际化,就是根据不同的区域(由系统设定)显示不同的语言.

Android国际化

这里我们以中文English 之间的国际化。

建立不同国家的values文件夹

Android-语言国际化

Android-语言国际化

因为我们这里要做的是中文和英文之间的国际化,所以我们这里仅仅就建立了values-en 这个目录,而values下的额strings.xml 则是我们的默认的语言(当系统的语言在程序的资源中没有被定义的话就加载此资源)。

开始进行布局
<?xml version="1.0" encoding="utf-8"?>
<LinearLayout
xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:tools="http://schemas.android.com/tools"
android:id="@+id/activity_main"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:orientation="vertical"
android:padding="10dp"
tools:context="little_david.internationalizationdemo.MainActivity"> <EditText
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:hint="用户名"/> <EditText
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:hint="密码"/> <Button
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:hint="登录"
android:textAllCaps="false"/>
</LinearLayout>

光标选中 hint 属性后按ALT+Entry 快捷键,依次的将所有的字符串都进行提取。

Android-语言国际化

Android-语言国际化

修改汉语为英语

编辑vlaues-en/strings.xml 文件

<!-- 这是编辑之前的文件 -->
<?xml version="1.0" encoding="utf-8"?>
<resources>
<!--这是我们的应用程序名称,不会自动生成我们需要手动添加一下-->
<string name="app_name">国际化 Demo</string>
<string name="login_username">用户名</string>
<string name="login_password">密码</string>
<string name="login_login_btn">登录</string>
</resources> <!-- 这是修改后的文件 -->
<resources>
<!--这是我们的应用程序名称,不会自动生成我们需要手动添加一下-->
<string name="app_name">Internationalization Demo</string>
<string name="login_username">Username</string>
<string name="login_password">Password</string>
<string name="login_login_btn">Login</string>
</resources>

测试效果

在设置中修改当前语言版本为中文

Android-语言国际化

修改当前系统语言为英文

Android-语言国际化

总结

手动进行国际化太累了啊,我们要借助AndroidStudio的插件来帮助我们进行国际化操作。该插件的名称是AndroidLocalizationer 。 如何使用请百度。