國際化相關

將文本定義在string中是一個好習慣,就算沒有國際化的需要,作爲一個資深強迫症患者,佈局文件裏給的滿屏國際化提示是很不爽的


我們每次創建一個工程,佈局文件裏默認有一個hello world,他是通過values下的strings定義的,在沒有別的語言的values文件夾時,就是來找這個文件夾下的strings文件

<TextView
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:text="@string/hello_world" />

<?xml version="1.0" encoding="utf-8"?>
<resources>

    <string name="app_name">day7_17International</string>
    <string name="hello_world">Hello world</string>
    
</resources>

這樣,不論我們將模擬器設置成什麼語言,運行後顯示的都是hello world


現在在strings裏添加一箇中文的香蕉

<?xml version="1.0" encoding="utf-8"?>
<resources>

    <string name="app_name">day7_17International</string>
    <string name="hello_world">Hello world</string>
    <string name="fruits">香蕉!</string>
    
</resources>
<TextView
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:text="@string/hello_world" />

    <TextView
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:text="@string/fruits" />

此時變動語言設置,無論什麼語言環境,都是按照strings裏定義的文本顯示

這樣寫就可以做到開發環境裏沒有提示國際化的標誌了,直接在佈局裏寫入一個text會有提示,多了的話看着很彆扭




再進一步,如果現在要把app推向別的國家,不一樣的語言環境,當改變了setting裏的語言設置,相應的文本改變語言,咋搞呢。這就是國際化了

再建一個相應的values文件夾和strings文件

需要什麼語言,就建一個配套的文件夾

常見android多國語言文件夾文件彙總如下:

中文(中國):values-zh-rCN
中文(臺灣):values-zh-rTW
中文(香港):values-zh-rHK
英語(美國):values-en-rUS
英語(英國):values-en-rGB
英文(澳大利亞):values-en-rAU
英文(加拿大):values-en-rCA
英文(愛爾蘭):values-en-rIE


在模擬器裏,默認的values是英文的,比如現在我們要建一箇中文的環境,讓hello world顯示爲 你好,世界

需要一個values-zh-rCN文件夾和strings.xml

<string name="app_name">day7_17國際化</string>
    <string name="hello_world">你好,世界</string>
    <string name="fruits">香蕉!</string>
順便把上面的標題也改了下,setting裏設置成中文來看下效果


這樣就顯示的中文了

如果你需要這段文本顯示日文、韓文什麼的,再去添加相應的文件就好



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