Android 作業系統在許多地區和裝置上都相當普及;為了盡可能觸及最多使用者,請確保應用程式能以適合在地使用者的方式處理文字、音訊檔案、數字、貨幣和圖形。
本頁說明將 Android 應用程式本地化的最佳做法。
您必須具備 Kotlin 或 Java 程式設計語言的實用知識,並熟悉Android 資源載入、在 XML 中宣告使用者介面元素、開發考量事項 (例如活動生命週期),以及國際化和本地化的一般原則。
建議您使用 Android 資源架構,盡可能區分應用程式的本地化功能與核心應用程式功能:
- 請依照本頁和「應用程式資源總覽」中所述,將應用程式使用者介面的大部分或全部「內容」放入資源檔案中。
- 另一方面,使用者介面的「行為」是由以 Kotlin 或 Java 為基礎的程式碼所驅動。舉例來說,如果使用者輸入的資料須依語言代碼而有不同的格式設定或排序,那麼請使用 Kotlin 或 Java 程式設計語言,透過程式輔助的方法處理資料。本頁內容不包括如何本地化以 Kotlin 或 Java 為基礎的程式碼。
如需本地化應用程式字串的簡易指南,請參閱「支援不同語言和文化」。
使用資源進行本地化
本節會說明如何建立預設資源和額外資源,也會談到如何指派資源的優先順序,以及如何在程式碼中參照資源。
建立預設資源
將應用程式的預設文字放入 res/values/strings.xml 中。這類字串應使用預設語言,也就是您預期大部分應用程式使用者都會使用的語言。
預設資源集也包含任何預設的可繪項目和版面配置,而且可納入其他類型的資源,例如動畫。這些資源位於以下目錄:
res/drawable/:必要目錄,至少要包含一個圖片檔讓應用程式在 Google Play 顯示圖示res/layout/:必要目錄,包含定義預設版面配置的 XML 檔案res/anim/:如有任何res/anim-<qualifiers>資料夾,則為必要目錄res/xml/:如有任何res/xml-<qualifiers>資料夾,則為必要目錄res/raw/:如有任何res/raw-<qualifiers>資料夾,則為必要目錄
提示:在程式碼中檢查各個 Android 資源的參照。確認每個資源都已定義預設資源。此外,請確認預設字串檔案完整:「本地化」字串檔案可以包含部分字串,但「預設」字串檔案必須包含全部。
本地化提示
請按照下列提示將應用程式本地化。
設計靈活的版面配置
如果您需要依照特定語言重新安排版面配置,可以針對該語言建立額外的版面配置,例如為德文版面配置使用 res/layout-de/main.xml。不過,這個做法可能會導致維護應用程式時的難度增加,因此建議您建立更具彈性的單一版面配置。
另一個常見情況是,語言對版面配置的要求有所不同。舉例來說,您可能有一份聯絡表單,其中包含應用程式以日文執行時的兩個名稱欄位,以及應用程式以其他語言執行時的三個名稱欄位。有兩種方式可以處理這種情況:
- 根據語言建立一個可透過程式啟用/停用欄位的版面配置。
- 在主要版面配置中納入另一個含有可變更欄位的版面配置。第二種版面配置可針對不同語言有不同的設定。
使用 Android Context 物件進行手動語言代碼查詢
您可以使用 Android 提供的 Context 物件查詢語言代碼,如以下範例所示:
Kotlin
val primaryLocale: Locale = context.resources.configuration.locales[0] val locale: String = primaryLocale.displayName
Java
Locale primaryLocale = context.getResources().getConfiguration().getLocales().get(0); String locale = primaryLocale.getDisplayName();