[Android] Language Support and Change the Default Language

在販賣 Android 裝置時,需要考慮支援不同的國家語言,甚至為了配合出貨程序,要在出貨時就預載銷售地的語言。為了滿足這項需求,便需要了解一下 Android 系統建置時,相關的語系支援設定。

從 Android Open Source Project 下載回來 Android 2.3.6 的源始碼,可以在下列地方找到支援語系的內容,

  android_source/build/target/product/languages_full.mk


以上是所有支援的語系都會被編譯,但有時候針對特定的環境,不需要支援這麼多語系,便可採用下列的設定,

  android_source/build/target/product/languages_small.mk

那我們該在哪邊選擇要匯入哪個語系設定呢?可以在下列設定檔內找到,

  android_source/build/target/product/full.mk


其中設定的內容如下,

   49 # Get a list of languages. We use the small list to save space
   50 # on smaller devices.
   51 $(call inherit-product, build/target/product/languages_small.mk)

上面是針對 generic 的 TARGET_PRODUCT,如果需要看額外的裝置是怎麼設定,可以在下列位置找到,特定裝置的代表目錄,
  android_source/vendor

或者是

  android_source/device
舉個例子,我們拿 Samsung Nexus S 來看,他的 device 名稱為 “crespo”,所以我們可以在下列位找到對應的設定檔,
  android_source/device/samsung/crespo/full_crespo.mk
而設定內容如下,
   22 # Inherit from those products. Most specific first.
   23 $(call inherit-product, $(SRC_TARGET_DIR)/product/languages_full.mk)
那我們如何設定預設的語言呢?

如果當我們是取用 language_full.mk 作為編譯時的 locale 選項,因為預設取用第一個 locale,所以我們可以將 zh_TW 放到第一個,就會讓預設語言改為繁體中文。

如此,在編譯過後,便可以將預設語言改為繁體中文了。

發佈留言