使用虛擬語言代碼測試應用程式

虛擬語言代碼是一種語言代碼,用於模擬在翻譯應用程式時,會引發使用者介面、版面配置和其他翻譯相關問題的語言特徵。虛擬語言代碼是由所有「可本地化」的訊息的即時自動翻譯 (以英文判讀) 建立。未經過虛擬本地化的文字會指向原始碼中無法翻譯的訊息。

虛擬語言代碼可以節省時間和成本,因為您可以先調整 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) 以上版本,並在裝置中啟用開發人員選項

以下說明虛擬語言代碼的啟用程序:

  1. 在 Android Studio 中將下列設定新增至 build.gradle 檔案,為特定應用程式啟用虛擬語言代碼:

    Groovy

    android {
       ...
       buildTypes {
           debug {
               pseudoLocalesEnabled true
           }
       }
    }
    

    Kotlin

    android {
       ...
       buildTypes.getByName("debug") {
           isPseudoLocalesEnabled = true
       }
    }
    
  2. 建構並執行應用程式

    圖 3. 選取虛擬語言代碼。

  3. 請使用「設定」應用程式選取虛擬語言代碼。這個步驟會因 Android 版本而異,如下所示:

    Android 5.0 (API 級別 21) 以上版本

    1. 在裝置中開啟「設定」應用程式,然後依序輕觸「語言與輸入」>「語言偏好設定」
    2. 在「語言偏好設定」清單中,拖曳分頁以將虛擬語言代碼移至清單頂端,使其成為使用中語言。請見圖 3。

    Android 4.4.4 (API 級別 19) 以下版本

    1. 在裝置中開啟「設定」應用程式,然後依序輕觸「語言與輸入」>「語言偏好設定」>「新增語言」
    2. 輕觸虛擬語言代碼即可將其新增至「語言偏好設定」清單。
    3. 在「語言偏好設定」清單中,拖曳分頁以將虛擬語言代碼移至清單頂端,使其成為使用中語言,如圖 3 所示。

找出本地化問題

虛擬語言代碼可協助辨識以下方面的問題,方便您找出 UI 中潛在的本地化問題,省時又省力:

  • 無法提交翻譯的硬式編碼字串。這類字串會在虛擬語言代碼中以無重音符號的文字形式顯示,以便找出這類字串。
  • 因文字內容擴展導致的 UI 版面配置問題。虛擬語言代碼中會顯示 UI 可能因文字長度而中斷的位置。
  • 字串串連,將一段訊息顯示為兩段以上由括號括住的分割片段。這可能會使譯者難以提供正確翻譯,因為他們必須分別翻譯每個片段,但不知道這些片段彼此相關。字串串連也可能使譯者無法提供正確翻譯,因為不同語言可能需使用不同的段落順序,或截然不同的語句結構。舉例來說,日文、韓文和泰米爾文等語言會將動詞置於句尾。如果將句子串連,譯者會無法視需要變更字詞順序。

  • 雙向 (BIDI) 文字問題,例如一種文字方向的內容中含有文字方向相反的內嵌詞組,導致字串難以閱讀。

  • 從右到左 (RTL) 的問題,例如元素未鏡像顯示。相關例子包括 UI 元素未移至左側、文字並未對調方向並移至左側,或標點符號放錯位置,例如「pseudolocales rule!」變更為「elur selacoloduesp!」而非「!elur selacoloduesp」。