# [Titanium]在android上實現多國語言對應

- URL: https://justfly.idv.tw/titanium%e5%9c%a8android%e4%b8%8a%e5%af%a6%e7%8f%be%e5%a4%9a%e5%9c%8b%e8%aa%9e%e8%a8%80%e5%b0%8d%e6%87%89/
- 日期: 2013-03-19
- 分類: WEB&amp;RIA
- 標籤: android, error, Titanium

https://justfly.idv.tw/wp-content/uploads/2013/03/titanium_android_i18n.png之前曾經碰過在ANDROID的時候，由於[命名問題]( https://justfly.idv.tw/2012/02/08/Just_1067.html )造成的錯誤。但當真正要實踐在android中的多國語言對應時才發現，並不是單單只有改檔名的問題，不只存放多國語言的XML的資料夾的位置不同，還需要透過修改AndroidManifest.xml的配合才能夠達到多國語言的目的。

在這部份，其實在[appcelerator的wiki](https://wiki.appcelerator.org/display/guides/Internationalization)中已經有蠻清楚的說明。只是這次使用的是alloy，所以稍微記錄一下目前的目錄結構（如左）。順便也記錄一下這次在製作AndroidManifest.xml時碰到的一點點小問題。

在一般的情況下，Titanium是會幫我們製作好androidManifest.xml這個檔案，存放在/build/android/之中。但有時我彭會碰到一些特殊需求，就必須自定這個檔案（存放在/platform/android/之中)。這樣Titanium在重新建立build時，就會自動覆寫系統自動產生的AndroidManifest.xml。當然覆寫AndroidManifest.xml有一定的風險，所以最安全的方法就是先build一次，然後到/build/android/把順利執行成功的AndroidManifest.xml拷貝到/platform/android/，然後才進行客製化的編輯。

這次我的目的只有希望依照android用戶所設定的系統語言，顯示出不同語言的app名稱，所以修改如wiki所寫：

```
category android:name="android.intent.category.LAUNCHER" />
```

注意，這並不是AndroidManifest.xml全文，更改的部份其實只有「@string/app_name」這個地方。其他都是依照完本的AndroidManifest.xml內容。如此一來，如果碰到日文的android系統，app就會到我們所設定的/platform/android/res/values-ja/strings.xml中讀取正確的app的日文名稱囉。
