虛擬語言代碼一種特別設計的語言代碼,可以在翻譯應用程式時,模擬造成 UI、版面配置和其他翻譯相關問題的語言特性。虛擬語言代碼是透過能以英文判讀的即時自動翻譯,針對所有「可本地化」的訊息建立。沒有虛擬本地化的文字會指向原始碼中不可翻譯的訊息。虛擬語言代碼可以節省時間和金錢,因為您可以先調整 UI 文字及其版面配置,然後才將訊息提交至來源存放區,留待稍後進行翻譯。如需潛在的翻譯問題清單,請參閱「尋找本地化問題」。

圖 1. 英文 (XA) 虛擬語言代碼
(Android) 虛擬語言代碼名稱遵循標準語言代碼命名慣例,而且語言代碼 ID 可由任何符合 BCP 47 規定的程式設計語言剖析。因此,虛擬語言代碼就和任何其他語言代碼一樣,例如法文、中文、俄文等。
Android 平台提供下列兩種虛擬語言代碼,代表從左到右 (LTR) 和從右到左 (RTL) 書寫的語言:

圖 2. AR (XB) 虛擬語言代碼
英文 (XA):在基礎英文 UI 文字中加入拉丁文重音符號,透過加入無重音符號的文字增加原始文字,以及為每個訊息單位加上括號以從擴展的文字中找出潛在問題。潛在問題可能是版面配置無法正常顯示和訊息語法格式不佳,比如說一個句子在顯示時不當分割,導致實際顯示成多段有括號的訊息。英文 (XA) 虛擬語言代碼,如圖 1 所示。
AR (XB):將原來由左至右顯示的訊息文字方向設定為由右至左,這會顛倒原始訊息中字元的順序。AR (XB) 虛擬語言代碼,如圖 2 所示。
即使您不會書寫或使用任何 RTL 語言,虛擬語言代碼都可以協助您製作應用程式的 RTL 版本。
啟用虛擬語言代碼
虛擬語言代碼通常會新增至開發人員導向的版本。在裝置中選擇虛擬語言代碼時,所有支援虛擬語言代碼的應用程式都會採用所選虛擬語言代碼的特性,包括所有系統應用程式,例如「設定」應用程式和「快速設定」面板。
如要使用 Android 虛擬語言代碼,您必須執行 Android 4.3 (API 級別 18) 以上版本,並在裝置中啟用開發人員選項。
以下程序說明如何啟用虛擬語言代碼:
在 Android Studio 中,新增下列設定至
build.gradle
檔案以針對特定應用程式啟用虛擬語言代碼,如下所示:Groovy
android { ... buildTypes { debug {
pseudoLocalesEnabled
true } } }Kotlin
android { ... buildTypes.getByName("debug") { isPseudoLocalesEnabled = true } }
-
圖 3:選取虛擬語言代碼
使用「設定」應用程式,根據 Android 版本選取虛擬語言代碼,如下所示:
Android 5.0 以上版本:
- 在裝置中開啟「設定」應用程式,然後依序輕觸「Languages and input」(語言與輸入) >「Language preferences」(語言偏好設定)。
- 在「Language preferences」(語言偏好設定) 清單中,按下分頁標籤,將虛擬語言代碼移至清單頂端 (如圖 3 所示)。
Android 4.4.4 以下版本:
- 在裝置中開啟「設定」應用程式,然後依序輕觸「Languages and input」(語言與輸入) >「Language preferences」(語言偏好設定) >「Add a language」(新增語言)。
- 輕觸虛擬語言代碼即可將其新增至「語言偏好設定」清單。
- 在「Language preferences」(語言偏好設定) 清單中,按下分頁標籤,將虛擬語言代碼移至清單頂端 (如圖 3 所示)。
尋找本地化問題
要在 UI 中尋找潛在的本地化相關問題,虛擬語言代碼可以協助您在下列區域辨識問題,既省時、又省力:
- 無法進行翻譯的硬式編碼字串,會在虛擬語言代碼中以無重音符號的文字顯示,方便注意查看。
- 文字擴展造成的 UI 版面配置問題,顯示 UI 可能因文字長度而中斷的位置。
字串串連,顯示為一段訊息在 2 個以上的括號中分割。這可能會導致翻譯不準確,因為譯者必須自行翻譯每個部分,但又無法瞭解這些部分都是相關的。字串串連也可能會導致無法正確翻譯,因為不同語言必須使用不同的段落順序,或完全不同的句子結構。舉例來說,日文、韓文和泰米爾文等某些語言會以動詞做為結尾。如果串連句子,翻譯師會無法視需要變更字詞順序。
雙向 (BIDI) 文字問題,例如一種文字方向的內容包含使用相反文字方向的內嵌詞組,導致字串難以閱讀。
從右到左 (RTL) 的問題,例如無法雙向同步元素。舉例來說,UI 元素沒有向左移動、文字沒有對調並向左移動,或錯放的標點符號 (例如:「pseudolocales rule!」變更為「elur selacoloduesp!」,但實際上應該是「!elur selacoloduesp」)。