Android學習----自適應國際化語言


轉載自點擊打開鏈接

【前言】

自適應的知識與編程無關,關鍵在於配置文件的修改。自適應的內容包括:語言、屏幕、平臺。今天就來說一下如何自適應國際化言。

internationalization (國際化)簡稱:i18n爲在i和n之間還有18個字符,localization(本地化 ),簡稱L10n。

一般用語言_地區的形式表示一種語言,如:zh_CN表示簡體中文。

 

操作方法:

爲了支持國際化語言,我們只要res/目錄下在重新新建文件夾爲:values-國家編號values-zh-rCN表示簡體中文,values-zh-rTW表示繁體,values-jp表示日語等。

注:配置選項包括語言代號地區代號。表示中文和中國的配置選項是 zh-rCN; 表示英文和美國的配置選項是en-rUS。其中,zh 和 en 表示中文和英文;CN和US表示中國和美國;前面的r是必須的

 

舉例:支持中文簡體的國際化

操作如下:

現在新建一個Android工程Android_i18n,默認在res/values/strings.xml中的代碼如下:

複製代碼
1 <?xml version="1.0" encoding="utf-8"?>
2 <resources>
3 
4     <string name="app_name">" Android_i18n"</string>
5     <string name="hello_world">Hello world!</string>
6     <string name="action_settings">Settings</string>
7 
8 </resources>
複製代碼

不做任何修改,直接在手機上運行程序,默認的效果如下:

聲明:我的手機默認的語言是設置爲中文的:

其實無論手機設置成什麼語言,運行的效果都是一樣的,因爲我們還沒有進行國際化設置嘛。那現在開始來設置吧。

現在來加一箇中文簡體的國際化:在res/目錄下新建一個文件夾代表中文簡體:values-zh-rCN目錄結構如下圖所示:

注:如果想再加一個英語的國際化,新建的文件夾爲values-en即可。

修改res/values-zh-rCN/strings.xml的代碼,如下:

複製代碼
1 <?xml version="1.0" encoding="utf-8"?>
2 <resources>
3 
4     <string name="app_name">" 安卓國際化"</string>
5     <string name="hello_world">你好,世界</string>
6     <string name="action_settings">設置</string>
7 
8 </resources>
複製代碼

此時運行程序,效果如下:

因爲手機設置的是中文語言,此時加載的字符串是res/values-zh-rCN/目錄下的資源。

大功告成。

 

問題一:

現在我並沒有添加繁體中文的對應的資源,如果我將手機的語言設置爲繁體中文,運行程序會是什麼現象呢?

答案:此時,如果沒有定義繁體中文的資源,那默認加載的就是res/values/目錄下的資源

問題二:

現在定義一個符串,只在res/values-zh-rCN/下定義,而不在res/values/定義,運行程序會是什麼現象呢?

答案:

現在我們在activity_main.xml中添加一個按鈕:

1     <Button 
2         android:layout_width="match_parent"
3         android:layout_height="wrap_content"
4         android:text="@string/login_button"/>

第04行代碼:按鈕顯示的名字引用了字符串login_button

此時,讓res/values/strings.xml的代碼保持不變:

複製代碼
<?xml version="1.0" encoding="utf-8"?>
<resources>

    <string name="app_name">" Android_i18n"</string>
    <string name="hello_world">Hello world!</string>
    <string name="action_settings">Settings</string>

</resources>
複製代碼

在res/values-zh-rCN/strings.xml中加一行login_button的聲明:(第07行代碼)

複製代碼
1 <?xml version="1.0" encoding="utf-8"?>
2 <resources>
3 
4     <string name="app_name">" 安卓國際化"</string>
5     <string name="hello_world">你好,世界</string>
6     <string name="action_settings">設置</string>
7     <string name="login_button">登陸按鈕</string>
8 
9 </resources>
複製代碼

效果:

activity_main.xml的視圖如下:

運行程序,如果手機的語言設置爲英文,效果如下:(非正常顯示)

如果手機的語言設置爲中文,效果如下:(能正常顯示)

 

其實,國際化並不難,但是如果想支持更多國家的語言,工作量會很大的。

最後附上用於平時用於查閱的東西:

國家_地區的語言縮寫代碼:(查詢備用)

 

附上國際化資源的常用鏈接:

各國語言縮寫:http://www.loc.gov/standards/iso639-2/php/code_list.php

國家和地區簡寫:http://www.iso.org/iso/en/prods-services/iso3166ma/02iso-3166-code-lists/list-en1.html

國家_地區語言速查表:http://www.cnblogs.com/Mien/archive/2008/08/22/1273950.html


 

【前言】

自適應的知識與編程無關,關鍵在於配置文件的修改。自適應的內容包括:語言、屏幕、平臺。今天就來說一下如何自適應國際化言。

internationalization (國際化)簡稱:i18n爲在i和n之間還有18個字符,localization(本地化 ),簡稱L10n。

一般用語言_地區的形式表示一種語言,如:zh_CN表示簡體中文。

 

操作方法:

爲了支持國際化語言,我們只要res/目錄下在重新新建文件夾爲:values-國家編號values-zh-rCN表示簡體中文,values-zh-rTW表示繁體,values-jp表示日語等。

注:配置選項包括語言代號地區代號。表示中文和中國的配置選項是 zh-rCN; 表示英文和美國的配置選項是en-rUS。其中,zh 和 en 表示中文和英文;CN和US表示中國和美國;前面的r是必須的

 

舉例:支持中文簡體的國際化

操作如下:

現在新建一個Android工程Android_i18n,默認在res/values/strings.xml中的代碼如下:

複製代碼
1 <?xml version="1.0" encoding="utf-8"?>
2 <resources>
3 
4     <string name="app_name">" Android_i18n"</string>
5     <string name="hello_world">Hello world!</string>
6     <string name="action_settings">Settings</string>
7 
8 </resources>
複製代碼

不做任何修改,直接在手機上運行程序,默認的效果如下:

聲明:我的手機默認的語言是設置爲中文的:

其實無論手機設置成什麼語言,運行的效果都是一樣的,因爲我們還沒有進行國際化設置嘛。那現在開始來設置吧。

現在來加一箇中文簡體的國際化:在res/目錄下新建一個文件夾代表中文簡體:values-zh-rCN目錄結構如下圖所示:

注:如果想再加一個英語的國際化,新建的文件夾爲values-en即可。

修改res/values-zh-rCN/strings.xml的代碼,如下:

複製代碼
1 <?xml version="1.0" encoding="utf-8"?>
2 <resources>
3 
4     <string name="app_name">" 安卓國際化"</string>
5     <string name="hello_world">你好,世界</string>
6     <string name="action_settings">設置</string>
7 
8 </resources>
複製代碼

此時運行程序,效果如下:

因爲手機設置的是中文語言,此時加載的字符串是res/values-zh-rCN/目錄下的資源。

大功告成。

 

問題一:

現在我並沒有添加繁體中文的對應的資源,如果我將手機的語言設置爲繁體中文,運行程序會是什麼現象呢?

答案:此時,如果沒有定義繁體中文的資源,那默認加載的就是res/values/目錄下的資源

問題二:

現在定義一個符串,只在res/values-zh-rCN/下定義,而不在res/values/定義,運行程序會是什麼現象呢?

答案:

現在我們在activity_main.xml中添加一個按鈕:

1     <Button 
2         android:layout_width="match_parent"
3         android:layout_height="wrap_content"
4         android:text="@string/login_button"/>

第04行代碼:按鈕顯示的名字引用了字符串login_button

此時,讓res/values/strings.xml的代碼保持不變:

複製代碼
<?xml version="1.0" encoding="utf-8"?>
<resources>

    <string name="app_name">" Android_i18n"</string>
    <string name="hello_world">Hello world!</string>
    <string name="action_settings">Settings</string>

</resources>
複製代碼

在res/values-zh-rCN/strings.xml中加一行login_button的聲明:(第07行代碼)

複製代碼
1 <?xml version="1.0" encoding="utf-8"?>
2 <resources>
3 
4     <string name="app_name">" 安卓國際化"</string>
5     <string name="hello_world">你好,世界</string>
6     <string name="action_settings">設置</string>
7     <string name="login_button">登陸按鈕</string>
8 
9 </resources>
複製代碼

效果:

activity_main.xml的視圖如下:

運行程序,如果手機的語言設置爲英文,效果如下:(非正常顯示)

如果手機的語言設置爲中文,效果如下:(能正常顯示)

 

其實,國際化並不難,但是如果想支持更多國家的語言,工作量會很大的。

最後附上用於平時用於查閱的東西:

國家_地區的語言縮寫代碼:(查詢備用)

 

附上國際化資源的常用鏈接:

各國語言縮寫:http://www.loc.gov/standards/iso639-2/php/code_list.php

國家和地區簡寫:http://www.iso.org/iso/en/prods-services/iso3166ma/02iso-3166-code-lists/list-en1.html

國家_地區語言速查表:http://www.cnblogs.com/Mien/archive/2008/08/22/1273950.html


http://www.cnblogs.com/smyhvae/p/4149592.html

 

【前言】

自適應的知識與編程無關,關鍵在於配置文件的修改。自適應的內容包括:語言、屏幕、平臺。今天就來說一下如何自適應國際化言。

internationalization (國際化)簡稱:i18n爲在i和n之間還有18個字符,localization(本地化 ),簡稱L10n。

一般用語言_地區的形式表示一種語言,如:zh_CN表示簡體中文。

 

操作方法:

爲了支持國際化語言,我們只要res/目錄下在重新新建文件夾爲:values-國家編號values-zh-rCN表示簡體中文,values-zh-rTW表示繁體,values-jp表示日語等。

注:配置選項包括語言代號地區代號。表示中文和中國的配置選項是 zh-rCN; 表示英文和美國的配置選項是en-rUS。其中,zh 和 en 表示中文和英文;CN和US表示中國和美國;前面的r是必須的

 

舉例:支持中文簡體的國際化

操作如下:

現在新建一個Android工程Android_i18n,默認在res/values/strings.xml中的代碼如下:

複製代碼
1 <?xml version="1.0" encoding="utf-8"?>
2 <resources>
3 
4     <string name="app_name">" Android_i18n"</string>
5     <string name="hello_world">Hello world!</string>
6     <string name="action_settings">Settings</string>
7 
8 </resources>
複製代碼

不做任何修改,直接在手機上運行程序,默認的效果如下:

聲明:我的手機默認的語言是設置爲中文的:

其實無論手機設置成什麼語言,運行的效果都是一樣的,因爲我們還沒有進行國際化設置嘛。那現在開始來設置吧。

現在來加一箇中文簡體的國際化:在res/目錄下新建一個文件夾代表中文簡體:values-zh-rCN目錄結構如下圖所示:

注:如果想再加一個英語的國際化,新建的文件夾爲values-en即可。

修改res/values-zh-rCN/strings.xml的代碼,如下:

複製代碼
1 <?xml version="1.0" encoding="utf-8"?>
2 <resources>
3 
4     <string name="app_name">" 安卓國際化"</string>
5     <string name="hello_world">你好,世界</string>
6     <string name="action_settings">設置</string>
7 
8 </resources>
複製代碼

此時運行程序,效果如下:

因爲手機設置的是中文語言,此時加載的字符串是res/values-zh-rCN/目錄下的資源。

大功告成。

 

問題一:

現在我並沒有添加繁體中文的對應的資源,如果我將手機的語言設置爲繁體中文,運行程序會是什麼現象呢?

答案:此時,如果沒有定義繁體中文的資源,那默認加載的就是res/values/目錄下的資源

問題二:

現在定義一個符串,只在res/values-zh-rCN/下定義,而不在res/values/定義,運行程序會是什麼現象呢?

答案:

現在我們在activity_main.xml中添加一個按鈕:

1     <Button 
2         android:layout_width="match_parent"
3         android:layout_height="wrap_content"
4         android:text="@string/login_button"/>

第04行代碼:按鈕顯示的名字引用了字符串login_button

此時,讓res/values/strings.xml的代碼保持不變:

複製代碼
<?xml version="1.0" encoding="utf-8"?>
<resources>

    <string name="app_name">" Android_i18n"</string>
    <string name="hello_world">Hello world!</string>
    <string name="action_settings">Settings</string>

</resources>
複製代碼

在res/values-zh-rCN/strings.xml中加一行login_button的聲明:(第07行代碼)

複製代碼
1 <?xml version="1.0" encoding="utf-8"?>
2 <resources>
3 
4     <string name="app_name">" 安卓國際化"</string>
5     <string name="hello_world">你好,世界</string>
6     <string name="action_settings">設置</string>
7     <string name="login_button">登陸按鈕</string>
8 
9 </resources>
複製代碼

效果:

activity_main.xml的視圖如下:

運行程序,如果手機的語言設置爲英文,效果如下:(非正常顯示)

如果手機的語言設置爲中文,效果如下:(能正常顯示)

 

其實,國際化並不難,但是如果想支持更多國家的語言,工作量會很大的。

最後附上用於平時用於查閱的東西:

國家_地區的語言縮寫代碼:(查詢備用)

 

附上國際化資源的常用鏈接:

各國語言縮寫:http://www.loc.gov/standards/iso639-2/php/code_list.php

國家和地區簡寫:http://www.iso.org/iso/en/prods-services/iso3166ma/02iso-3166-code-lists/list-en1.html

國家_地區語言速查表:http://www.cnblogs.com/Mien/archive/2008/08/22/1273950.html


 

【前言】

自適應的知識與編程無關,關鍵在於配置文件的修改。自適應的內容包括:語言、屏幕、平臺。今天就來說一下如何自適應國際化言。

internationalization (國際化)簡稱:i18n爲在i和n之間還有18個字符,localization(本地化 ),簡稱L10n。

一般用語言_地區的形式表示一種語言,如:zh_CN表示簡體中文。

 

操作方法:

爲了支持國際化語言,我們只要res/目錄下在重新新建文件夾爲:values-國家編號values-zh-rCN表示簡體中文,values-zh-rTW表示繁體,values-jp表示日語等。

注:配置選項包括語言代號地區代號。表示中文和中國的配置選項是 zh-rCN; 表示英文和美國的配置選項是en-rUS。其中,zh 和 en 表示中文和英文;CN和US表示中國和美國;前面的r是必須的

 

舉例:支持中文簡體的國際化

操作如下:

現在新建一個Android工程Android_i18n,默認在res/values/strings.xml中的代碼如下:

複製代碼
1 <?xml version="1.0" encoding="utf-8"?>
2 <resources>
3 
4     <string name="app_name">" Android_i18n"</string>
5     <string name="hello_world">Hello world!</string>
6     <string name="action_settings">Settings</string>
7 
8 </resources>
複製代碼

不做任何修改,直接在手機上運行程序,默認的效果如下:

聲明:我的手機默認的語言是設置爲中文的:

其實無論手機設置成什麼語言,運行的效果都是一樣的,因爲我們還沒有進行國際化設置嘛。那現在開始來設置吧。

現在來加一箇中文簡體的國際化:在res/目錄下新建一個文件夾代表中文簡體:values-zh-rCN目錄結構如下圖所示:

注:如果想再加一個英語的國際化,新建的文件夾爲values-en即可。

修改res/values-zh-rCN/strings.xml的代碼,如下:

複製代碼
1 <?xml version="1.0" encoding="utf-8"?>
2 <resources>
3 
4     <string name="app_name">" 安卓國際化"</string>
5     <string name="hello_world">你好,世界</string>
6     <string name="action_settings">設置</string>
7 
8 </resources>
複製代碼

此時運行程序,效果如下:

因爲手機設置的是中文語言,此時加載的字符串是res/values-zh-rCN/目錄下的資源。

大功告成。

 

問題一:

現在我並沒有添加繁體中文的對應的資源,如果我將手機的語言設置爲繁體中文,運行程序會是什麼現象呢?

答案:此時,如果沒有定義繁體中文的資源,那默認加載的就是res/values/目錄下的資源

問題二:

現在定義一個符串,只在res/values-zh-rCN/下定義,而不在res/values/定義,運行程序會是什麼現象呢?

答案:

現在我們在activity_main.xml中添加一個按鈕:

1     <Button 
2         android:layout_width="match_parent"
3         android:layout_height="wrap_content"
4         android:text="@string/login_button"/>

第04行代碼:按鈕顯示的名字引用了字符串login_button

此時,讓res/values/strings.xml的代碼保持不變:

複製代碼
<?xml version="1.0" encoding="utf-8"?>
<resources>

    <string name="app_name">" Android_i18n"</string>
    <string name="hello_world">Hello world!</string>
    <string name="action_settings">Settings</string>

</resources>
複製代碼

在res/values-zh-rCN/strings.xml中加一行login_button的聲明:(第07行代碼)

複製代碼
1 <?xml version="1.0" encoding="utf-8"?>
2 <resources>
3 
4     <string name="app_name">" 安卓國際化"</string>
5     <string name="hello_world">你好,世界</string>
6     <string name="action_settings">設置</string>
7     <string name="login_button">登陸按鈕</string>
8 
9 </resources>
複製代碼

效果:

activity_main.xml的視圖如下:

運行程序,如果手機的語言設置爲英文,效果如下:(非正常顯示)

如果手機的語言設置爲中文,效果如下:(能正常顯示)

 

其實,國際化並不難,但是如果想支持更多國家的語言,工作量會很大的。

最後附上用於平時用於查閱的東西:

國家_地區的語言縮寫代碼:(查詢備用)

 

附上國際化資源的常用鏈接:

各國語言縮寫:http://www.loc.gov/standards/iso639-2/php/code_list.php

國家和地區簡寫:http://www.iso.org/iso/en/prods-services/iso3166ma/02iso-3166-code-lists/list-en1.html

國家_地區語言速查表:http://www.cnblogs.com/Mien/archive/2008/08/22/1273950.html


http://www.cnblogs.com/smyhvae/p/4149592.html

【前言】

自適應的知識與編程無關,關鍵在於配置文件的修改。自適應的內容包括:語言、屏幕、平臺。今天就來說一下如何自適應國際化言。

internationalization (國際化)簡稱:i18n爲在i和n之間還有18個字符,localization(本地化 ),簡稱L10n。

一般用語言_地區的形式表示一種語言,如:zh_CN表示簡體中文。

 

操作方法:

爲了支持國際化語言,我們只要res/目錄下在重新新建文件夾爲:values-國家編號values-zh-rCN表示簡體中文,values-zh-rTW表示繁體,values-jp表示日語等。

注:配置選項包括語言代號地區代號。表示中文和中國的配置選項是 zh-rCN; 表示英文和美國的配置選項是en-rUS。其中,zh 和 en 表示中文和英文;CN和US表示中國和美國;前面的r是必須的

 

舉例:支持中文簡體的國際化

操作如下:

現在新建一個Android工程Android_i18n,默認在res/values/strings.xml中的代碼如下:

複製代碼
1 <?xml version="1.0" encoding="utf-8"?>
2 <resources>
3 
4     <string name="app_name">" Android_i18n"</string>
5     <string name="hello_world">Hello world!</string>
6     <string name="action_settings">Settings</string>
7 
8 </resources>
複製代碼

不做任何修改,直接在手機上運行程序,默認的效果如下:

聲明:我的手機默認的語言是設置爲中文的:

其實無論手機設置成什麼語言,運行的效果都是一樣的,因爲我們還沒有進行國際化設置嘛。那現在開始來設置吧。

現在來加一箇中文簡體的國際化:在res/目錄下新建一個文件夾代表中文簡體:values-zh-rCN目錄結構如下圖所示:

注:如果想再加一個英語的國際化,新建的文件夾爲values-en即可。

修改res/values-zh-rCN/strings.xml的代碼,如下:

複製代碼
1 <?xml version="1.0" encoding="utf-8"?>
2 <resources>
3 
4     <string name="app_name">" 安卓國際化"</string>
5     <string name="hello_world">你好,世界</string>
6     <string name="action_settings">設置</string>
7 
8 </resources>
複製代碼

此時運行程序,效果如下:

因爲手機設置的是中文語言,此時加載的字符串是res/values-zh-rCN/目錄下的資源。

大功告成。

 

問題一:

現在我並沒有添加繁體中文的對應的資源,如果我將手機的語言設置爲繁體中文,運行程序會是什麼現象呢?

答案:此時,如果沒有定義繁體中文的資源,那默認加載的就是res/values/目錄下的資源

問題二:

現在定義一個符串,只在res/values-zh-rCN/下定義,而不在res/values/定義,運行程序會是什麼現象呢?

答案:

現在我們在activity_main.xml中添加一個按鈕:

1     <Button 
2         android:layout_width="match_parent"
3         android:layout_height="wrap_content"
4         android:text="@string/login_button"/>

第04行代碼:按鈕顯示的名字引用了字符串login_button

此時,讓res/values/strings.xml的代碼保持不變:

複製代碼
<?xml version="1.0" encoding="utf-8"?>
<resources>

    <string name="app_name">" Android_i18n"</string>
    <string name="hello_world">Hello world!</string>
    <string name="action_settings">Settings</string>

</resources>
複製代碼

在res/values-zh-rCN/strings.xml中加一行login_button的聲明:(第07行代碼)

複製代碼
1 <?xml version="1.0" encoding="utf-8"?>
2 <resources>
3 
4     <string name="app_name">" 安卓國際化"</string>
5     <string name="hello_world">你好,世界</string>
6     <string name="action_settings">設置</string>
7     <string name="login_button">登陸按鈕</string>
8 
9 </resources>
複製代碼

效果:

activity_main.xml的視圖如下:

運行程序,如果手機的語言設置爲英文,效果如下:(非正常顯示)

如果手機的語言設置爲中文,效果如下:(能正常顯示)

 

其實,國際化並不難,但是如果想支持更多國家的語言,工作量會很大的。

最後附上用於平時用於查閱的東西:

國家_地區的語言縮寫代碼:(查詢備用)

 

附上國際化資源的常用鏈接:

各國語言縮寫:http://www.loc.gov/standards/iso639-2/php/code_list.php

國家和地區簡寫:http://www.iso.org/iso/en/prods-services/iso3166ma/02iso-3166-code-lists/list-en1.html

國家_地區語言速查表:http://www.cnblogs.com/Mien/archive/2008/08/22/1273950.html


 

【前言】

自適應的知識與編程無關,關鍵在於配置文件的修改。自適應的內容包括:語言、屏幕、平臺。今天就來說一下如何自適應國際化言。

internationalization (國際化)簡稱:i18n爲在i和n之間還有18個字符,localization(本地化 ),簡稱L10n。

一般用語言_地區的形式表示一種語言,如:zh_CN表示簡體中文。

 

操作方法:

爲了支持國際化語言,我們只要res/目錄下在重新新建文件夾爲:values-國家編號values-zh-rCN表示簡體中文,values-zh-rTW表示繁體,values-jp表示日語等。

注:配置選項包括語言代號地區代號。表示中文和中國的配置選項是 zh-rCN; 表示英文和美國的配置選項是en-rUS。其中,zh 和 en 表示中文和英文;CN和US表示中國和美國;前面的r是必須的

 

舉例:支持中文簡體的國際化

操作如下:

現在新建一個Android工程Android_i18n,默認在res/values/strings.xml中的代碼如下:

複製代碼
1 <?xml version="1.0" encoding="utf-8"?>
2 <resources>
3 
4     <string name="app_name">" Android_i18n"</string>
5     <string name="hello_world">Hello world!</string>
6     <string name="action_settings">Settings</string>
7 
8 </resources>
複製代碼

不做任何修改,直接在手機上運行程序,默認的效果如下:

聲明:我的手機默認的語言是設置爲中文的:

其實無論手機設置成什麼語言,運行的效果都是一樣的,因爲我們還沒有進行國際化設置嘛。那現在開始來設置吧。

現在來加一箇中文簡體的國際化:在res/目錄下新建一個文件夾代表中文簡體:values-zh-rCN目錄結構如下圖所示:

注:如果想再加一個英語的國際化,新建的文件夾爲values-en即可。

修改res/values-zh-rCN/strings.xml的代碼,如下:

複製代碼
1 <?xml version="1.0" encoding="utf-8"?>
2 <resources>
3 
4     <string name="app_name">" 安卓國際化"</string>
5     <string name="hello_world">你好,世界</string>
6     <string name="action_settings">設置</string>
7 
8 </resources>
複製代碼

此時運行程序,效果如下:

因爲手機設置的是中文語言,此時加載的字符串是res/values-zh-rCN/目錄下的資源。

大功告成。

 

問題一:

現在我並沒有添加繁體中文的對應的資源,如果我將手機的語言設置爲繁體中文,運行程序會是什麼現象呢?

答案:此時,如果沒有定義繁體中文的資源,那默認加載的就是res/values/目錄下的資源

問題二:

現在定義一個符串,只在res/values-zh-rCN/下定義,而不在res/values/定義,運行程序會是什麼現象呢?

答案:

現在我們在activity_main.xml中添加一個按鈕:

1     <Button 
2         android:layout_width="match_parent"
3         android:layout_height="wrap_content"
4         android:text="@string/login_button"/>

第04行代碼:按鈕顯示的名字引用了字符串login_button

此時,讓res/values/strings.xml的代碼保持不變:

複製代碼
<?xml version="1.0" encoding="utf-8"?>
<resources>

    <string name="app_name">" Android_i18n"</string>
    <string name="hello_world">Hello world!</string>
    <string name="action_settings">Settings</string>

</resources>
複製代碼

在res/values-zh-rCN/strings.xml中加一行login_button的聲明:(第07行代碼)

複製代碼
1 <?xml version="1.0" encoding="utf-8"?>
2 <resources>
3 
4     <string name="app_name">" 安卓國際化"</string>
5     <string name="hello_world">你好,世界</string>
6     <string name="action_settings">設置</string>
7     <string name="login_button">登陸按鈕</string>
8 
9 </resources>
複製代碼

效果:

activity_main.xml的視圖如下:

運行程序,如果手機的語言設置爲英文,效果如下:(非正常顯示)

如果手機的語言設置爲中文,效果如下:(能正常顯示)

 

其實,國際化並不難,但是如果想支持更多國家的語言,工作量會很大的。

最後附上用於平時用於查閱的東西:

國家_地區的語言縮寫代碼:(查詢備用)

 

附上國際化資源的常用鏈接:

各國語言縮寫:http://www.loc.gov/standards/iso639-2/php/code_list.php

國家和地區簡寫:http://www.iso.org/iso/en/prods-services/iso3166ma/02iso-3166-code-lists/list-en1.html

國家_地區語言速查表:http://www.cnblogs.com/Mien/archive/2008/08/22/1273950.html


http://www.cnblogs.com/smyhvae/p/4149592.html

 

【前言】

自適應的知識與編程無關,關鍵在於配置文件的修改。自適應的內容包括:語言、屏幕、平臺。今天就來說一下如何自適應國際化言。

internationalization (國際化)簡稱:i18n爲在i和n之間還有18個字符,localization(本地化 ),簡稱L10n。

一般用語言_地區的形式表示一種語言,如:zh_CN表示簡體中文。

 

操作方法:

爲了支持國際化語言,我們只要res/目錄下在重新新建文件夾爲:values-國家編號values-zh-rCN表示簡體中文,values-zh-rTW表示繁體,values-jp表示日語等。

注:配置選項包括語言代號地區代號。表示中文和中國的配置選項是 zh-rCN; 表示英文和美國的配置選項是en-rUS。其中,zh 和 en 表示中文和英文;CN和US表示中國和美國;前面的r是必須的

 

舉例:支持中文簡體的國際化

操作如下:

現在新建一個Android工程Android_i18n,默認在res/values/strings.xml中的代碼如下:

複製代碼
1 <?xml version="1.0" encoding="utf-8"?>
2 <resources>
3 
4     <string name="app_name">" Android_i18n"</string>
5     <string name="hello_world">Hello world!</string>
6     <string name="action_settings">Settings</string>
7 
8 </resources>
複製代碼

不做任何修改,直接在手機上運行程序,默認的效果如下:

聲明:我的手機默認的語言是設置爲中文的:

其實無論手機設置成什麼語言,運行的效果都是一樣的,因爲我們還沒有進行國際化設置嘛。那現在開始來設置吧。

現在來加一箇中文簡體的國際化:在res/目錄下新建一個文件夾代表中文簡體:values-zh-rCN目錄結構如下圖所示:

注:如果想再加一個英語的國際化,新建的文件夾爲values-en即可。

修改res/values-zh-rCN/strings.xml的代碼,如下:

複製代碼
1 <?xml version="1.0" encoding="utf-8"?>
2 <resources>
3 
4     <string name="app_name">" 安卓國際化"</string>
5     <string name="hello_world">你好,世界</string>
6     <string name="action_settings">設置</string>
7 
8 </resources>
複製代碼

此時運行程序,效果如下:

因爲手機設置的是中文語言,此時加載的字符串是res/values-zh-rCN/目錄下的資源。

大功告成。

 

問題一:

現在我並沒有添加繁體中文的對應的資源,如果我將手機的語言設置爲繁體中文,運行程序會是什麼現象呢?

答案:此時,如果沒有定義繁體中文的資源,那默認加載的就是res/values/目錄下的資源

問題二:

現在定義一個符串,只在res/values-zh-rCN/下定義,而不在res/values/定義,運行程序會是什麼現象呢?

答案:

現在我們在activity_main.xml中添加一個按鈕:

1     <Button 
2         android:layout_width="match_parent"
3         android:layout_height="wrap_content"
4         android:text="@string/login_button"/>

第04行代碼:按鈕顯示的名字引用了字符串login_button

此時,讓res/values/strings.xml的代碼保持不變:

複製代碼
<?xml version="1.0" encoding="utf-8"?>
<resources>

    <string name="app_name">" Android_i18n"</string>
    <string name="hello_world">Hello world!</string>
    <string name="action_settings">Settings</string>

</resources>
複製代碼

在res/values-zh-rCN/strings.xml中加一行login_button的聲明:(第07行代碼)

複製代碼
1 <?xml version="1.0" encoding="utf-8"?>
2 <resources>
3 
4     <string name="app_name">" 安卓國際化"</string>
5     <string name="hello_world">你好,世界</string>
6     <string name="action_settings">設置</string>
7     <string name="login_button">登陸按鈕</string>
8 
9 </resources>
複製代碼

效果:

activity_main.xml的視圖如下:

運行程序,如果手機的語言設置爲英文,效果如下:(非正常顯示)

如果手機的語言設置爲中文,效果如下:(能正常顯示)

 

其實,國際化並不難,但是如果想支持更多國家的語言,工作量會很大的。

最後附上用於平時用於查閱的東西:

國家_地區的語言縮寫代碼:(查詢備用)

 

附上國際化資源的常用鏈接:

各國語言縮寫:http://www.loc.gov/standards/iso639-2/php/code_list.php

國家和地區簡寫:http://www.iso.org/iso/en/prods-services/iso3166ma/02iso-3166-code-lists/list-en1.html

國家_地區語言速查表:http://www.cnblogs.com/Mien/archive/2008/08/22/1273950.html


 

【前言】

自適應的知識與編程無關,關鍵在於配置文件的修改。自適應的內容包括:語言、屏幕、平臺。今天就來說一下如何自適應國際化言。

internationalization (國際化)簡稱:i18n爲在i和n之間還有18個字符,localization(本地化 ),簡稱L10n。

一般用語言_地區的形式表示一種語言,如:zh_CN表示簡體中文。

 

操作方法:

爲了支持國際化語言,我們只要res/目錄下在重新新建文件夾爲:values-國家編號values-zh-rCN表示簡體中文,values-zh-rTW表示繁體,values-jp表示日語等。

注:配置選項包括語言代號地區代號。表示中文和中國的配置選項是 zh-rCN; 表示英文和美國的配置選項是en-rUS。其中,zh 和 en 表示中文和英文;CN和US表示中國和美國;前面的r是必須的

 

舉例:支持中文簡體的國際化

操作如下:

現在新建一個Android工程Android_i18n,默認在res/values/strings.xml中的代碼如下:

複製代碼
1 <?xml version="1.0" encoding="utf-8"?>
2 <resources>
3 
4     <string name="app_name">" Android_i18n"</string>
5     <string name="hello_world">Hello world!</string>
6     <string name="action_settings">Settings</string>
7 
8 </resources>
複製代碼

不做任何修改,直接在手機上運行程序,默認的效果如下:

聲明:我的手機默認的語言是設置爲中文的:

其實無論手機設置成什麼語言,運行的效果都是一樣的,因爲我們還沒有進行國際化設置嘛。那現在開始來設置吧。

現在來加一箇中文簡體的國際化:在res/目錄下新建一個文件夾代表中文簡體:values-zh-rCN目錄結構如下圖所示:

注:如果想再加一個英語的國際化,新建的文件夾爲values-en即可。

修改res/values-zh-rCN/strings.xml的代碼,如下:

複製代碼
1 <?xml version="1.0" encoding="utf-8"?>
2 <resources>
3 
4     <string name="app_name">" 安卓國際化"</string>
5     <string name="hello_world">你好,世界</string>
6     <string name="action_settings">設置</string>
7 
8 </resources>
複製代碼

此時運行程序,效果如下:

因爲手機設置的是中文語言,此時加載的字符串是res/values-zh-rCN/目錄下的資源。

大功告成。

 

問題一:

現在我並沒有添加繁體中文的對應的資源,如果我將手機的語言設置爲繁體中文,運行程序會是什麼現象呢?

答案:此時,如果沒有定義繁體中文的資源,那默認加載的就是res/values/目錄下的資源

問題二:

現在定義一個符串,只在res/values-zh-rCN/下定義,而不在res/values/定義,運行程序會是什麼現象呢?

答案:

現在我們在activity_main.xml中添加一個按鈕:

1     <Button 
2         android:layout_width="match_parent"
3         android:layout_height="wrap_content"
4         android:text="@string/login_button"/>

第04行代碼:按鈕顯示的名字引用了字符串login_button

此時,讓res/values/strings.xml的代碼保持不變:

複製代碼
<?xml version="1.0" encoding="utf-8"?>
<resources>

    <string name="app_name">" Android_i18n"</string>
    <string name="hello_world">Hello world!</string>
    <string name="action_settings">Settings</string>

</resources>
複製代碼

在res/values-zh-rCN/strings.xml中加一行login_button的聲明:(第07行代碼)

複製代碼
1 <?xml version="1.0" encoding="utf-8"?>
2 <resources>
3 
4     <string name="app_name">" 安卓國際化"</string>
5     <string name="hello_world">你好,世界</string>
6     <string name="action_settings">設置</string>
7     <string name="login_button">登陸按鈕</string>
8 
9 </resources>
複製代碼

效果:

activity_main.xml的視圖如下:

運行程序,如果手機的語言設置爲英文,效果如下:(非正常顯示)

如果手機的語言設置爲中文,效果如下:(能正常顯示)

 

其實,國際化並不難,但是如果想支持更多國家的語言,工作量會很大的。

最後附上用於平時用於查閱的東西:

國家_地區的語言縮寫代碼:(查詢備用)

 

附上國際化資源的常用鏈接:

各國語言縮寫:http://www.loc.gov/standards/iso639-2/php/code_list.php

國家和地區簡寫:http://www.iso.org/iso/en/prods-services/iso3166ma/02iso-3166-code-lists/list-en1.html

國家_地區語言速查表:http://www.cnblogs.com/Mien/archive/2008/08/22/1273950.html


http://www.cnblogs.com/smyhvae/p/4149592.html

 

【前言】

自適應的知識與編程無關,關鍵在於配置文件的修改。自適應的內容包括:語言、屏幕、平臺。今天就來說一下如何自適應國際化言。

internationalization (國際化)簡稱:i18n爲在i和n之間還有18個字符,localization(本地化 ),簡稱L10n。

一般用語言_地區的形式表示一種語言,如:zh_CN表示簡體中文。

 

操作方法:

爲了支持國際化語言,我們只要res/目錄下在重新新建文件夾爲:values-國家編號values-zh-rCN表示簡體中文,values-zh-rTW表示繁體,values-jp表示日語等。

注:配置選項包括語言代號地區代號。表示中文和中國的配置選項是 zh-rCN; 表示英文和美國的配置選項是en-rUS。其中,zh 和 en 表示中文和英文;CN和US表示中國和美國;前面的r是必須的

 

舉例:支持中文簡體的國際化

操作如下:

現在新建一個Android工程Android_i18n,默認在res/values/strings.xml中的代碼如下:

複製代碼
1 <?xml version="1.0" encoding="utf-8"?>
2 <resources>
3 
4     <string name="app_name">" Android_i18n"</string>
5     <string name="hello_world">Hello world!</string>
6     <string name="action_settings">Settings</string>
7 
8 </resources>
複製代碼

不做任何修改,直接在手機上運行程序,默認的效果如下:

聲明:我的手機默認的語言是設置爲中文的:

其實無論手機設置成什麼語言,運行的效果都是一樣的,因爲我們還沒有進行國際化設置嘛。那現在開始來設置吧。

現在來加一箇中文簡體的國際化:在res/目錄下新建一個文件夾代表中文簡體:values-zh-rCN目錄結構如下圖所示:

注:如果想再加一個英語的國際化,新建的文件夾爲values-en即可。

修改res/values-zh-rCN/strings.xml的代碼,如下:

複製代碼
1 <?xml version="1.0" encoding="utf-8"?>
2 <resources>
3 
4     <string name="app_name">" 安卓國際化"</string>
5     <string name="hello_world">你好,世界</string>
6     <string name="action_settings">設置</string>
7 
8 </resources>
複製代碼

此時運行程序,效果如下:

因爲手機設置的是中文語言,此時加載的字符串是res/values-zh-rCN/目錄下的資源。

大功告成。

 

問題一:

現在我並沒有添加繁體中文的對應的資源,如果我將手機的語言設置爲繁體中文,運行程序會是什麼現象呢?

答案:此時,如果沒有定義繁體中文的資源,那默認加載的就是res/values/目錄下的資源

問題二:

現在定義一個符串,只在res/values-zh-rCN/下定義,而不在res/values/定義,運行程序會是什麼現象呢?

答案:

現在我們在activity_main.xml中添加一個按鈕:

1     <Button 
2         android:layout_width="match_parent"
3         android:layout_height="wrap_content"
4         android:text="@string/login_button"/>

第04行代碼:按鈕顯示的名字引用了字符串login_button

此時,讓res/values/strings.xml的代碼保持不變:

複製代碼
<?xml version="1.0" encoding="utf-8"?>
<resources>

    <string name="app_name">" Android_i18n"</string>
    <string name="hello_world">Hello world!</string>
    <string name="action_settings">Settings</string>

</resources>
複製代碼

在res/values-zh-rCN/strings.xml中加一行login_button的聲明:(第07行代碼)

複製代碼
1 <?xml version="1.0" encoding="utf-8"?>
2 <resources>
3 
4     <string name="app_name">" 安卓國際化"</string>
5     <string name="hello_world">你好,世界</string>
6     <string name="action_settings">設置</string>
7     <string name="login_button">登陸按鈕</string>
8 
9 </resources>
複製代碼

效果:

activity_main.xml的視圖如下:

運行程序,如果手機的語言設置爲英文,效果如下:(非正常顯示)

如果手機的語言設置爲中文,效果如下:(能正常顯示)

 

其實,國際化並不難,但是如果想支持更多國家的語言,工作量會很大的。

最後附上用於平時用於查閱的東西:

國家_地區的語言縮寫代碼:(查詢備用)

 

附上國際化資源的常用鏈接:

各國語言縮寫:http://www.loc.gov/standards/iso639-2/php/code_list.php

國家和地區簡寫:http://www.iso.org/iso/en/prods-services/iso3166ma/02iso-3166-code-lists/list-en1.html

國家_地區語言速查表:http://www.cnblogs.com/Mien/archive/2008/08/22/1273950.html




 

【前言】

自適應的知識與編程無關,關鍵在於配置文件的修改。自適應的內容包括:語言、屏幕、平臺。今天就來說一下如何自適應國際化言。

internationalization (國際化)簡稱:i18n爲在i和n之間還有18個字符,localization(本地化 ),簡稱L10n。

一般用語言_地區的形式表示一種語言,如:zh_CN表示簡體中文。

 

操作方法:

爲了支持國際化語言,我們只要res/目錄下在重新新建文件夾爲:values-國家編號values-zh-rCN表示簡體中文,values-zh-rTW表示繁體,values-jp表示日語等。

注:配置選項包括語言代號地區代號。表示中文和中國的配置選項是 zh-rCN; 表示英文和美國的配置選項是en-rUS。其中,zh 和 en 表示中文和英文;CN和US表示中國和美國;前面的r是必須的

 

舉例:支持中文簡體的國際化

操作如下:

現在新建一個Android工程Android_i18n,默認在res/values/strings.xml中的代碼如下:

複製代碼
1 <?xml version="1.0" encoding="utf-8"?>
2 <resources>
3 
4     <string name="app_name">" Android_i18n"</string>
5     <string name="hello_world">Hello world!</string>
6     <string name="action_settings">Settings</string>
7 
8 </resources>
複製代碼

不做任何修改,直接在手機上運行程序,默認的效果如下:

聲明:我的手機默認的語言是設置爲中文的:

其實無論手機設置成什麼語言,運行的效果都是一樣的,因爲我們還沒有進行國際化設置嘛。那現在開始來設置吧。

現在來加一箇中文簡體的國際化:在res/目錄下新建一個文件夾代表中文簡體:values-zh-rCN目錄結構如下圖所示:

注:如果想再加一個英語的國際化,新建的文件夾爲values-en即可。

修改res/values-zh-rCN/strings.xml的代碼,如下:

複製代碼
1 <?xml version="1.0" encoding="utf-8"?>
2 <resources>
3 
4     <string name="app_name">" 安卓國際化"</string>
5     <string name="hello_world">你好,世界</string>
6     <string name="action_settings">設置</string>
7 
8 </resources>
複製代碼

此時運行程序,效果如下:

因爲手機設置的是中文語言,此時加載的字符串是res/values-zh-rCN/目錄下的資源。

大功告成。

 

問題一:

現在我並沒有添加繁體中文的對應的資源,如果我將手機的語言設置爲繁體中文,運行程序會是什麼現象呢?

答案:此時,如果沒有定義繁體中文的資源,那默認加載的就是res/values/目錄下的資源

問題二:

現在定義一個符串,只在res/values-zh-rCN/下定義,而不在res/values/定義,運行程序會是什麼現象呢?

答案:

現在我們在activity_main.xml中添加一個按鈕:

1     <Button 
2         android:layout_width="match_parent"
3         android:layout_height="wrap_content"
4         android:text="@string/login_button"/>

第04行代碼:按鈕顯示的名字引用了字符串login_button

此時,讓res/values/strings.xml的代碼保持不變:

複製代碼
<?xml version="1.0" encoding="utf-8"?>
<resources>

    <string name="app_name">" Android_i18n"</string>
    <string name="hello_world">Hello world!</string>
    <string name="action_settings">Settings</string>

</resources>
複製代碼

在res/values-zh-rCN/strings.xml中加一行login_button的聲明:(第07行代碼)

複製代碼
1 <?xml version="1.0" encoding="utf-8"?>
2 <resources>
3 
4     <string name="app_name">" 安卓國際化"</string>
5     <string name="hello_world">你好,世界</string>
6     <string name="action_settings">設置</string>
7     <string name="login_button">登陸按鈕</string>
8 
9 </resources>
複製代碼

效果:

activity_main.xml的視圖如下:

運行程序,如果手機的語言設置爲英文,效果如下:(非正常顯示)

如果手機的語言設置爲中文,效果如下:(能正常顯示)

 

其實,國際化並不難,但是如果想支持更多國家的語言,工作量會很大的。

最後附上用於平時用於查閱的東西:

國家_地區的語言縮寫代碼:(查詢備用)

 

附上國際化資源的常用鏈接:

各國語言縮寫:http://www.loc.gov/standards/iso639-2/php/code_list.php

國家和地區簡寫:http://www.iso.org/iso/en/prods-services/iso3166ma/02iso-3166-code-lists/list-en1.html

國家_地區語言速查表:http://www.cnblogs.com/Mien/archive/2008/08/22/1273950.html


 

【前言】

自適應的知識與編程無關,關鍵在於配置文件的修改。自適應的內容包括:語言、屏幕、平臺。今天就來說一下如何自適應國際化言。

internationalization (國際化)簡稱:i18n爲在i和n之間還有18個字符,localization(本地化 ),簡稱L10n。

一般用語言_地區的形式表示一種語言,如:zh_CN表示簡體中文。

 

操作方法:

爲了支持國際化語言,我們只要res/目錄下在重新新建文件夾爲:values-國家編號values-zh-rCN表示簡體中文,values-zh-rTW表示繁體,values-jp表示日語等。

注:配置選項包括語言代號地區代號。表示中文和中國的配置選項是 zh-rCN; 表示英文和美國的配置選項是en-rUS。其中,zh 和 en 表示中文和英文;CN和US表示中國和美國;前面的r是必須的

 

舉例:支持中文簡體的國際化

操作如下:

現在新建一個Android工程Android_i18n,默認在res/values/strings.xml中的代碼如下:

複製代碼
1 <?xml version="1.0" encoding="utf-8"?>
2 <resources>
3 
4     <string name="app_name">" Android_i18n"</string>
5     <string name="hello_world">Hello world!</string>
6     <string name="action_settings">Settings</string>
7 
8 </resources>
複製代碼

不做任何修改,直接在手機上運行程序,默認的效果如下:

聲明:我的手機默認的語言是設置爲中文的:

其實無論手機設置成什麼語言,運行的效果都是一樣的,因爲我們還沒有進行國際化設置嘛。那現在開始來設置吧。

現在來加一箇中文簡體的國際化:在res/目錄下新建一個文件夾代表中文簡體:values-zh-rCN目錄結構如下圖所示:

注:如果想再加一個英語的國際化,新建的文件夾爲values-en即可。

修改res/values-zh-rCN/strings.xml的代碼,如下:

複製代碼
1 <?xml version="1.0" encoding="utf-8"?>
2 <resources>
3 
4     <string name="app_name">" 安卓國際化"</string>
5     <string name="hello_world">你好,世界</string>
6     <string name="action_settings">設置</string>
7 
8 </resources>
複製代碼

此時運行程序,效果如下:

因爲手機設置的是中文語言,此時加載的字符串是res/values-zh-rCN/目錄下的資源。

大功告成。

 

問題一:

現在我並沒有添加繁體中文的對應的資源,如果我將手機的語言設置爲繁體中文,運行程序會是什麼現象呢?

答案:此時,如果沒有定義繁體中文的資源,那默認加載的就是res/values/目錄下的資源

問題二:

現在定義一個符串,只在res/values-zh-rCN/下定義,而不在res/values/定義,運行程序會是什麼現象呢?

答案:

現在我們在activity_main.xml中添加一個按鈕:

1     <Button 
2         android:layout_width="match_parent"
3         android:layout_height="wrap_content"
4         android:text="@string/login_button"/>

第04行代碼:按鈕顯示的名字引用了字符串login_button

此時,讓res/values/strings.xml的代碼保持不變:

複製代碼
<?xml version="1.0" encoding="utf-8"?>
<resources>

    <string name="app_name">" Android_i18n"</string>
    <string name="hello_world">Hello world!</string>
    <string name="action_settings">Settings</string>

</resources>
複製代碼

在res/values-zh-rCN/strings.xml中加一行login_button的聲明:(第07行代碼)

複製代碼
1 <?xml version="1.0" encoding="utf-8"?>
2 <resources>
3 
4     <string name="app_name">" 安卓國際化"</string>
5     <string name="hello_world">你好,世界</string>
6     <string name="action_settings">設置</string>
7     <string name="login_button">登陸按鈕</string>
8 
9 </resources>
複製代碼

效果:

activity_main.xml的視圖如下:

運行程序,如果手機的語言設置爲英文,效果如下:(非正常顯示)

如果手機的語言設置爲中文,效果如下:(能正常顯示)

 

其實,國際化並不難,但是如果想支持更多國家的語言,工作量會很大的。

最後附上用於平時用於查閱的東西:

國家_地區的語言縮寫代碼:(查詢備用)

 

附上國際化資源的常用鏈接:

各國語言縮寫:http://www.loc.gov/standards/iso639-2/php/code_list.php

國家和地區簡寫:http://www.iso.org/iso/en/prods-services/iso3166ma/02iso-3166-code-lists/list-en1.html

國家_地區語言速查表:http://www.cnblogs.com/Mien/archive/2008/08/22/1273950.html

 

【前言】

自適應的知識與編程無關,關鍵在於配置文件的修改。自適應的內容包括:語言、屏幕、平臺。今天就來說一下如何自適應國際化言。

internationalization (國際化)簡稱:i18n爲在i和n之間還有18個字符,localization(本地化 ),簡稱L10n。

一般用語言_地區的形式表示一種語言,如:zh_CN表示簡體中文。

 

操作方法:

爲了支持國際化語言,我們只要res/目錄下在重新新建文件夾爲:values-國家編號values-zh-rCN表示簡體中文,values-zh-rTW表示繁體,values-jp表示日語等。

注:配置選項包括語言代號地區代號。表示中文和中國的配置選項是 zh-rCN; 表示英文和美國的配置選項是en-rUS。其中,zh 和 en 表示中文和英文;CN和US表示中國和美國;前面的r是必須的

 

舉例:支持中文簡體的國際化

操作如下:

現在新建一個Android工程Android_i18n,默認在res/values/strings.xml中的代碼如下:

複製代碼
1 <?xml version="1.0" encoding="utf-8"?>
2 <resources>
3 
4     <string name="app_name">" Android_i18n"</string>
5     <string name="hello_world">Hello world!</string>
6     <string name="action_settings">Settings</string>
7 
8 </resources>
複製代碼

不做任何修改,直接在手機上運行程序,默認的效果如下:

聲明:我的手機默認的語言是設置爲中文的:

其實無論手機設置成什麼語言,運行的效果都是一樣的,因爲我們還沒有進行國際化設置嘛。那現在開始來設置吧。

現在來加一箇中文簡體的國際化:在res/目錄下新建一個文件夾代表中文簡體:values-zh-rCN目錄結構如下圖所示:

注:如果想再加一個英語的國際化,新建的文件夾爲values-en即可。

修改res/values-zh-rCN/strings.xml的代碼,如下:

複製代碼
1 <?xml version="1.0" encoding="utf-8"?>
2 <resources>
3 
4     <string name="app_name">" 安卓國際化"</string>
5     <string name="hello_world">你好,世界</string>
6     <string name="action_settings">設置</string>
7 
8 </resources>
複製代碼

此時運行程序,效果如下:

因爲手機設置的是中文語言,此時加載的字符串是res/values-zh-rCN/目錄下的資源。

大功告成。

 

問題一:

現在我並沒有添加繁體中文的對應的資源,如果我將手機的語言設置爲繁體中文,運行程序會是什麼現象呢?

答案:此時,如果沒有定義繁體中文的資源,那默認加載的就是res/values/目錄下的資源

問題二:

現在定義一個符串,只在res/values-zh-rCN/下定義,而不在res/values/定義,運行程序會是什麼現象呢?

答案:

現在我們在activity_main.xml中添加一個按鈕:

1     <Button 
2         android:layout_width="match_parent"
3         android:layout_height="wrap_content"
4         android:text="@string/login_button"/>

第04行代碼:按鈕顯示的名字引用了字符串login_button

此時,讓res/values/strings.xml的代碼保持不變:

複製代碼
<?xml version="1.0" encoding="utf-8"?>
<resources>

    <string name="app_name">" Android_i18n"</string>
    <string name="hello_world">Hello world!</string>
    <string name="action_settings">Settings</string>

</resources>
複製代碼

在res/values-zh-rCN/strings.xml中加一行login_button的聲明:(第07行代碼)

複製代碼
1 <?xml version="1.0" encoding="utf-8"?>
2 <resources>
3 
4     <string name="app_name">" 安卓國際化"</string>
5     <string name="hello_world">你好,世界</string>
6     <string name="action_settings">設置</string>
7     <string name="login_button">登陸按鈕</string>
8 
9 </resources>
複製代碼

效果:

activity_main.xml的視圖如下:

運行程序,如果手機的語言設置爲英文,效果如下:(非正常顯示)

如果手機的語言設置爲中文,效果如下:(能正常顯示)

 

其實,國際化並不難,但是如果想支持更多國家的語言,工作量會很大的。

最後附上用於平時用於查閱的東西:

國家_地區的語言縮寫代碼:(查詢備用)

 

附上國際化資源的常用鏈接:

各國語言縮寫:http://www.loc.gov/standards/iso639-2/php/code_list.php

國家和地區簡寫:http://www.iso.org/iso/en/prods-services/iso3166ma/02iso-3166-code-lists/list-en1.html

國家_地區語言速查表:http://www.cnblogs.com/Mien/archive/2008/08/22/1273950.html

 

【前言】

自適應的知識與編程無關,關鍵在於配置文件的修改。自適應的內容包括:語言、屏幕、平臺。今天就來說一下如何自適應國際化言。

internationalization (國際化)簡稱:i18n爲在i和n之間還有18個字符,localization(本地化 ),簡稱L10n。

一般用語言_地區的形式表示一種語言,如:zh_CN表示簡體中文。

 

操作方法:

爲了支持國際化語言,我們只要res/目錄下在重新新建文件夾爲:values-國家編號values-zh-rCN表示簡體中文,values-zh-rTW表示繁體,values-jp表示日語等。

注:配置選項包括語言代號地區代號。表示中文和中國的配置選項是 zh-rCN; 表示英文和美國的配置選項是en-rUS。其中,zh 和 en 表示中文和英文;CN和US表示中國和美國;前面的r是必須的

 

舉例:支持中文簡體的國際化

操作如下:

現在新建一個Android工程Android_i18n,默認在res/values/strings.xml中的代碼如下:

複製代碼
1 <?xml version="1.0" encoding="utf-8"?>
2 <resources>
3 
4     <string name="app_name">" Android_i18n"</string>
5     <string name="hello_world">Hello world!</string>
6     <string name="action_settings">Settings</string>
7 
8 </resources>
複製代碼

不做任何修改,直接在手機上運行程序,默認的效果如下:

聲明:我的手機默認的語言是設置爲中文的:

其實無論手機設置成什麼語言,運行的效果都是一樣的,因爲我們還沒有進行國際化設置嘛。那現在開始來設置吧。

現在來加一箇中文簡體的國際化:在res/目錄下新建一個文件夾代表中文簡體:values-zh-rCN目錄結構如下圖所示:

注:如果想再加一個英語的國際化,新建的文件夾爲values-en即可。

修改res/values-zh-rCN/strings.xml的代碼,如下:

複製代碼
1 <?xml version="1.0" encoding="utf-8"?>
2 <resources>
3 
4     <string name="app_name">" 安卓國際化"</string>
5     <string name="hello_world">你好,世界</string>
6     <string name="action_settings">設置</string>
7 
8 </resources>
複製代碼

此時運行程序,效果如下:

因爲手機設置的是中文語言,此時加載的字符串是res/values-zh-rCN/目錄下的資源。

大功告成。

 

問題一:

現在我並沒有添加繁體中文的對應的資源,如果我將手機的語言設置爲繁體中文,運行程序會是什麼現象呢?

答案:此時,如果沒有定義繁體中文的資源,那默認加載的就是res/values/目錄下的資源

問題二:

現在定義一個符串,只在res/values-zh-rCN/下定義,而不在res/values/定義,運行程序會是什麼現象呢?

答案:

現在我們在activity_main.xml中添加一個按鈕:

1     <Button 
2         android:layout_width="match_parent"
3         android:layout_height="wrap_content"
4         android:text="@string/login_button"/>

第04行代碼:按鈕顯示的名字引用了字符串login_button

此時,讓res/values/strings.xml的代碼保持不變:

複製代碼
<?xml version="1.0" encoding="utf-8"?>
<resources>

    <string name="app_name">" Android_i18n"</string>
    <string name="hello_world">Hello world!</string>
    <string name="action_settings">Settings</string>

</resources>
複製代碼

在res/values-zh-rCN/strings.xml中加一行login_button的聲明:(第07行代碼)

複製代碼
1 <?xml version="1.0" encoding="utf-8"?>
2 <resources>
3 
4     <string name="app_name">" 安卓國際化"</string>
5     <string name="hello_world">你好,世界</string>
6     <string name="action_settings">設置</string>
7     <string name="login_button">登陸按鈕</string>
8 
9 </resources>
複製代碼

效果:

activity_main.xml的視圖如下:

運行程序,如果手機的語言設置爲英文,效果如下:(非正常顯示)

如果手機的語言設置爲中文,效果如下:(能正常顯示)

 

其實,國際化並不難,但是如果想支持更多國家的語言,工作量會很大的。

最後附上用於平時用於查閱的東西:

國家_地區的語言縮寫代碼:(查詢備用)

 

附上國際化資源的常用鏈接:

各國語言縮寫:http://www.loc.gov/standards/iso639-2/php/code_list.php

國家和地區簡寫:http://www.iso.org/iso/en/prods-services/iso3166ma/02iso-3166-code-lists/list-en1.html

國家_地區語言速查表:http://www.cnblogs.com/Mien/archive/2008/08/22/1273950.html

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章