1. 程式人生 > >Android多語言實現及對Unity的Api的支援

Android多語言實現及對Unity的Api的支援

前言:

在製作遊戲或者APP的時候,如果有國外使用者,就會用多語言,在ios的InfoPlist中可以加入多種語言,同樣,在android中也可以簡單實現多語言。最新的APP中使用了三十幾種語言。

1.Unity的Application.systemLanguage

在使用Unity進行遊戲製作的時候,使用Application.systemLanguage可以獲取當前裝置使用的語言列表,在根據系統語言,使用I2等多語言外掛,可以在進入APP的時候預設成相應的語言。

.

需要注意,在使用Unity的Application.systemLanguage的時候,需要在Android中實現國際化,及在values中實現對應的支援,否則改api會得到錯誤的字串,比如,Plugins中Android的values下面只有values-zh和values-es,此時的APP只有中英兩種多語言,Unity的Application.systemLanguage就只會得到這兩種語言的字串,並且得到某一種的依據是當前語言選擇列表中,中文和英文的順序,那個在前面,返回那個語言。。。蛋疼的一個坑。。。

2. Android 中要實現多語言。 

   字串國際化:只要在 res 資料夾下新建對應語言的 values 資料夾就好了,
   如,英語環境下的,資料夾命名為:values-en ,泛指英語,如果加入地區,美國英文:values-en-rUS 
   中文環境為:values-zh ,
大陸地區中文環境: values-zh-cn

  當某一個資源沒有在語言環境的對應的資源集合中找到時,就會使用 values 下的資源。 若某一個語言環境沒有在專案中定義語言環境,那麼也使用 values 下的資源。 

3. 圖片使用多語言國際化 

       Android中和上述方式一樣,Unity的I2外掛中已經封裝了較好的多語言方式,包含text,texture,sprite等

       在 res 下新建 drawable-zh 資料夾,存放中文環境下的圖片 

       新建 drawable-en 作為英語環境下的圖片 ,同樣,它們也可以國際化,命名規則如:  drawable-zh-hdpi   drawable-en-ldpi  drawable-en-rUS-mdpi 在 XML 中需要使用到圖片的地方用表示式: @drawable/icon 程式碼中使用:R.drawable.icon。因為圖片資源同樣也會在 R 檔案中生成一個索引

4.android多國語言資料夾檔案彙總

中文(中國):values-zh-rCN

中文(臺灣):values-zh-rTW

中文(香港):values-zh-rHK
英語(美國):values-en-rUS
英語(英國):values-en-rGB
英文(澳大利亞):values-en-rAU
英文(加拿大):values-en-rCA
英文(印度):values-en-rIN
英文(紐西蘭):values-en-rNZ
英文(南非):values-en-rZA阿拉伯文(埃及):values-ar-rEG
阿拉伯文(以色列):values-ar-rIL
保加利亞文:  values-bg-rBG
加泰羅尼亞文:values-ca-rES
捷克文:values-cs-rCZ
丹麥文:values-da-rDK
德文(奧地利):values-de-rAT
德文(瑞士):values-de-rCH
德文(德國):values-de-rDE
德文(列支敦斯登):values-de-rLI
希臘文:values-el-rGR
西班牙文(西班牙):values-es-rES
西班牙文(美國):values-es-rUS
芬蘭文(芬蘭):values-fi-rFI
法文(比利時):values-fr-rBE
法文(加拿大):values-fr-rCA
法文(瑞士):values-fr-rCH
法文(法國):values-fr-rFR
希伯來文:values-iw-rIL
印地文:values-hi-rIN
克羅里亞文:values-hr-rHR
匈牙利文:values-hu-rHU
印度尼西亞文:values-in-rID
義大利文(瑞士):values-it-rCH
義大利文(義大利):values-it-rIT
日文:values-ja-rJP
韓文:values-ko-rKR
立陶宛文:valueslt-rLT
拉脫維亞文:values-lv-rLV
挪威博克馬爾文:values-nb-rNO
荷蘭文(比利時):values-nl-BE
荷蘭文(荷蘭):values-nl-rNL
波蘭文:values-pl-rPL
葡萄牙文(巴西):values-pt-rBR
葡萄牙文(葡萄牙):values-pt-rPT
羅馬尼亞文:values-ro-rRO
俄文:values-ru-rRU
斯洛伐克文:values-sk-rSK
斯洛維尼亞文:values-sl-rSI
塞爾維亞文:values-sr-rRS
瑞典文:values-sv-rSE
泰文:values-th-rTH
塔加洛語:values-tl-rPH
土耳其文:values--r-rTR
烏克蘭文:values-uk-rUA
越南文:values-vi-rVN

英文(愛爾蘭):values-en-rIE

英文(新加坡):values-en-rSG