使用翻譯編輯器將使用者介面本地化

翻譯編輯器提供整合性的編輯介面,方便您集中查看所有預設和 翻譯的字串資源

如需將應用程式翻譯成不同語言的相關介紹,請參閱 支援不同的 語言和文化

圖 1. 翻譯編輯器顯示尚未翻譯的應用程式文字

字串資源

專案的字串資源會包含在 strings.xml 檔案中。你的專案 預設的 strings.xml 檔案預設內含字串資源 也就是您預期多數應用程式使用者的語言 。你也可以使用翻譯後的 strings.xml 檔案 (包含字串) ,瞭解您希望應用程式能配合的其他語言。

完成預設的 strings.xml 檔案後,您可以自行新增翻譯,或付費聘請專業翻譯人員進行翻譯。無論採用哪種方式,您都可以運用 Android Studio 功能來管理及測試本地化文字。如需專業翻譯服務的相關資訊,請參閱「預訂翻譯服務」。

開啟翻譯編輯器

您可以透過 Android Studio 的以下位置存取翻譯編輯器。

透過 Android 檢視畫面開啟

  1. 在「Project」(專案) >左側的 Android 面板 選取「ModuleName」>「」解析度 >值
  2. 在「strings.xml」檔案上按一下滑鼠右鍵,然後選取「Open Translations Editor」

    翻譯編輯器會顯示 strings.xml 檔案中的鍵與值組合。

    注意:如果您有翻譯版的 strings.xml 檔案,您的專案就會有多個對應的「values」資料夾,其名稱結尾會附帶語言代碼 (例如西班牙文的資料夾為「values-es」)。預設的 strings.xml 檔案一律位於「values」(不含後置字串) 資料夾中。

圖 1 顯示某個簡易應用程式在翻譯編輯器中尚未經過翻譯的預設應用程式文字 (本例為英文)。翻譯版的 strings.xml 檔案會顯示在「Untranslatable」資料欄的右側,每個語言各有一欄 (如圖 2 所示)。

從 strings.xml 中開啟

您可以在任一 strings.xml 檔案中存取翻譯編輯器

  1. 在「Project」(專案) >在左側的「Android」面板中選取 ModuleName >解析度 >值
  2. 按兩下 strings.xml 即可開啟該檔案進行編輯。
  3. strings.xml 中,按一下右上角的「Open editor」連結。

注意:如果您點選隱藏通知連結,開啟 編輯器連結將不再顯示。如要恢復顯示該連結,請先關閉該專案再重新開啟。

透過設計編輯器開啟

您可以在版面配置編輯器的設計編輯器中開啟翻譯編輯器, 預設和翻譯 配合版面配置調整文字如要瞭解如何在設計編輯器中切換語言,請參閱「在設計編輯器中顯示譯文」。

  1. 在「Project」(專案) >在左側的「Android」面板中選取 ModuleName >解析度 >版面配置
  2. 按兩下 content_main.xml 即可開啟該檔案進行編輯。
  3. 按一下左下角的「Design」分頁標籤,即可顯示「Design」編輯器。
  4. 在設計編輯器中,選取「Language」下拉式清單。
  5. 選取「Edit Translations」圖示

設定不可翻譯的列

您可以在翻譯編輯器中選取「Unstranslatable」,表示您不要翻譯該資料列的文字。舉例來說,您可以將商號和商標等產品專屬文字以及沒有對應翻譯的術語,設為不可翻譯的文字

當您勾選 [無法翻譯] 時,系統會在預設的對應行 strings.xml 檔案會加上 translatable="false"。在以下範例中,系統不會翻譯第一行的 EasyApp,因為這是產品名稱。

<resources>
    <string name="app_name" translatable="false">EasyApp</string>
    <string name="action_settings">Settings</string>
    <string name="easy_app">I am a Simple App!</string>
    <string name="next_page">Next Page</string>
    <string name="second_page_message">I am the Second Page!</string>
    <string name="title_activity_second">SecondActivity</string>
</resources>

新增及刪除語言

翻譯編輯器支援 BCP 47,會將語言代碼和地區 (國家) 代碼合併為單一本地化版本。語言代碼所定義的內容比語言更精確。語言代碼包括各種國家/地區的專屬格式設定,例如日期和時間、貨幣和小數。

如要新增語言,請執行下列步驟:

  1. 在「Translations Editor」中按一下地球圖示
  2. 在下拉式清單中,選取您要新增的語言。

    翻譯編輯器會隨即顯示新語言,並將內含 strings.xml 檔案的「values-*」資料夾加入專案。例如「values-es」為西班牙文。

如要刪除語言,請執行下列步驟:

您可以在翻譯編輯器中刪除資料欄中的每個值,藉此刪除該語言 (請參閱 編輯、新增或刪除文字),或者刪除專案資料夾 該語言,如下所示:

  1. 在「Project」(專案) >在左側的「Android」面板中選取 ModuleName >res
  2. 找到要刪除的語言,然後在對應的「values-*」資料夾上按一下滑鼠右鍵。例如「values-hi」為北印度文。
  3. 在下拉式清單中選取「Delete」,即可刪除該資料夾及其 strings.xml 檔案。

編輯、新增及刪除文字

您可以直接在 strings.xml 檔案中或透過翻譯編輯器配置文字設定。本節將說明採用翻譯編輯器的方法。在翻譯編輯器中,只要透過清單檢視畫面或翻譯編輯器底部的「Translations」欄位,即可編輯、新增或刪除文字。

圖 2. 頂端的清單檢視畫面和底部的「Translation」欄位

清單檢視

如要編輯或新增文字,請執行下列步驟:

  1. 按兩下您要編輯或新增文字的儲存格。
  2. 使用鍵盤執行複製/貼上;如果您的鍵盤支援變音符號,請直接在清單檢視畫面中輸入文字內容。
  3. 使用「Tab」鍵或將游標移出欄位外。

如要刪除文字,請執行下列步驟:

  1. 按兩下您要刪除的儲存格。
  2. 在清單檢視畫面中選取文字,然後按下 Delete 鍵。
  3. 使用「Tab」鍵或將游標移出欄位外。

翻譯欄位

如要編輯或新增文字,請執行下列步驟:

  1. 在清單檢視畫面中,按一下您要編輯或新增文字的儲存格。
  2. 在「Translation」欄位中,使用鍵盤執行複製/貼上操作。 如果您的鍵盤支援變音符號, 直接在「Translation」欄位中輸入標記。
  3. 使用「Tab」鍵或將游標移出欄位外。

如要刪除文字,請執行下列步驟:

  1. 按一下您要刪除的儲存格。
  2. 在「Translation」欄位中選取文字,然後按下「Delete」鍵。

新增及刪除索引鍵

在翻譯編輯器中,「Key」資料欄會列出 strings.xml 檔案中每個資料項目的專屬 ID。您可以透過翻譯編輯器新增及刪除索引鍵。當您刪除索引鍵時,翻譯編輯器會一併刪除所有與該索引鍵相關聯的翻譯。翻譯編輯器會使用安全刪除重構功能 刪除索引鍵,這樣您就能知道該鍵是否已用於其他地方,而且還有機會 請在刪除金鑰前進行必要調整。「安全刪除」重構功能可確保系統在您刪除索引鍵後仍可正常編譯程式碼。

如要新增索引鍵,請執行下列步驟:

  1. 翻譯編輯器中按一下「Add Key
  2. 在對話方塊中,輸入索引鍵名稱、預設值和預設 strings.xml 檔案的位置。

    圖 3. 新增索引鍵

如要刪除索引鍵,請執行下列步驟:

  1. 在翻譯編輯器中選取您要刪除的索引鍵。
  2. 按一下「Remove Keys」圖示
  3. 在「Delete」對話方塊中,決定是否要使用安全刪除功能,以及是否要在註解和字串中進行搜尋,然後按一下「OK」

    圖 4. 「Delete」對話方塊

    如果已刪除的索引鍵沒有任何參照項目 (使用情形),或所有參照項目是否安全 可收合,此時鍵會刪除否則,翻譯編輯器就會顯示「Usages Detected」對話方塊,提供系統偵測到的問題相關資訊。

    圖 5. 「Delete」對話方塊

  4. 選取「View Usages」,即可查看即將刪除的內容。「Find Safe Delete Conflicts」對話方塊會顯示所有無法安全刪除的使用情形,以便您編輯對應的程式碼。

    圖 6. 不安全的使用情形

  5. 在某個使用情形上按一下滑鼠右鍵,開啟內容選單並選取「Jump to Source」後,就能進行必要變更。
  6. 在「Find Safe Delete Conflicts」面板中,選取「Rerun Safe Delete」,確保沒有任何其他需要處理的使用情形。
  7. 使用情形清理完成後,按一下「Do Refactor」即可刪除索引鍵。

修正錯誤

圖 7 為翻譯編輯器顯示英文、西班牙文和法文的 strings.xml 檔案內容。紅色文字代表該行出現錯誤。

圖 7. 紅色文字代表您必須修正的錯誤狀況

如要修正錯誤,只要將游標懸停在紅色文字上,即可顯示問題說明和解決方法。

當您在翻譯編輯器中進行變更時,系統將採用 系統會依據你的變更內容更新 strings.xml 個檔案。當你 strings.xml 檔案中的變更,翻譯編輯器中的對應資料欄 就會反映您所做的變更

翻譯編輯器修正內容範例:

  • 圖 7 顯示 app_name 資料列已勾選「Untranslatable」,但卻有西班牙文譯文。只要刪除西班牙文翻譯即可修正錯誤。
  • 圖 7 顯示 next_page 資料列缺少法文翻譯。只要使用鍵盤將「Page Suivante」複製到儲存格中,即可修正錯誤。鍵盤的複製貼上操作可正確將帶有變音符號的文字複製到儲存格中。

在設計編輯器中顯示譯文

如要查看譯文在應用程式版面配置中的顯示方式,請切換 如下所示:

  1. 在「Project」(專案) >在左側的「Android」面板中選取 ModuleName >解析度 >版面配置
  2. 按兩下 content_main.xml 即可開啟該檔案進行編輯。
  3. 按一下左下角的「Design」分頁標籤,即可顯示「Design」編輯器。
  4. 在設計編輯器中,選取「Language」 下拉式清單。
  5. 選取「Edit Translations」圖示
  6. 選取您要用來瀏覽應用程式的語言。

    圖 8. 語言下拉式清單,已選取「Spanish」

設計編輯器會以選取的語言顯示應用程式版面配置 (本範例為西班牙文)。

圖 9.設計編輯器顯示西班牙文的譯文

將設計編輯器設為預設語言

如要恢復預設語言,請依序選取「es」>「Language」圖示

圖 10. 設為預設語言

管理及測試本地化文字

Android 平台和 Android Studio 提供多種功能,可協助您管理及測試本地化的應用程式文字。這些功能提供許多選項,可協助您處理由右至左 (RTL) 書寫系統的問題, 例如阿拉伯文或希伯來文測試本地化文字後,您就能調整 UI 將訊息提交至來源存放區

重構專案以支援由右至左 (RTL) 的文字

Android Studio 提供重構指令,可支援 TextViewConstraintLayoutLinearLayout 元素中的雙向文字,還能讓使用者編輯由左至右 (LTR) 及由右至左 (RTL) 的字集。這個指令也會針對應用程式 UI 版面配置和所有檢視畫面小工具,提供自動鏡像畫面。如要查看文字方向變更以及版面配置鏡像設定,您也必須在版面配置編輯器中設定文字和版面配置方向屬性

下列流程說明如何重構專案以支援 RTL 文字:

  1. 選取「重構」重構>盡可能新增 RTL 支援功能,以在下列情況下顯示對話方塊: 圖 11

    圖 11. 新增 RTL 支援功能

    • 如果應用程式的 <application> 元素 AndroidManifest.xml 個檔案確實執行 沒有 android:supportsRTL="true" 屬性 然後勾選「Update AndroidManifest.xml」核取方塊。
    • 如果應用程式的 targetSdkVersion 為 17 以上, 選取「Replace Left/Right Properties with Start/End Properties」。在本 的情況下,屬性應使用「start」和「end」而不是「left」和「右」舉例來說,android:paddingLeft 會變為 android:paddingStart
    • 如果應用程式的 targetSdkVersion 為 16 以下版本,請選取「Generate -v17 Versions」。在這種情況下,XML 應同時使用這兩組屬性。舉例來說,XML 應同時使用 android:paddingLeftandroid:paddingStart
  2. 如要顯示「Find Refactoring Preview」視窗,請按一下「Run」

    圖 12. 查看預覽

  3. 按一下「Do Refactor」

如要進一步瞭解如何重構專案以支援 RTL 文字,請參閱「Native RTL support in Android 4.2」(Android 4.2 中的 RTL 原生支援服務)。

文字和版面配置方向屬性

如要變更文字方向和版面配置元件,可使用右側「Properties」視窗中提供的 textDirection 屬性 (可與文字小工具搭配使用) 和 layoutDirection 屬性 (可與版面配置小工具搭配使用)。右側的「Properties」視窗會列出方向屬性,適用於 API 級別 17 以上版本。

如要查看文字方向變更以及版面配置鏡像設定,您也必須 重構專案以支援 RTL 文字。在英文中,文字方向變更只會將標點符號從文字右側移至左側 (例如「Hello World!」會變成「!Hello World」)。如何查看 LTR 文字 切換為 RTL 語言,您必須在應用程式中使用 RTL 語言。如要使用英文,並找到 請將文字切換為 RTL 以進行測試,請使用虛擬語言代碼。 虛擬語言代碼與重構指令和方向屬性無關。

如要存取及使用方向屬性,請執行下列步驟:

  1. 版面配置編輯器中選取文字小工具。
  2. 開啟「Properties」視窗,然後搜尋您要使用的 RTL 屬性。

    如要設定屬性值,請選取下列其中一個選項:

    • firstStrong:根層級檢視畫面的預設選項。第一個特定書寫方向的字元會決定段落的閱讀方向。如果沒有特定書寫方向的字元,段落方向則根據檢視畫面設定的版面配置方向而定。
    • anyRtl:只要段落含有僅能由右至左書寫的 RTL 字元,段落方向為 RTL。如果沒有這類字元,段落方向則根據檢視畫面設定的版面配置方向而定。
    • ltr:段落方向為 LTR。
    • rtl:段落方向為 RTL。
    • locale:段落方向由系統語言代碼而定。
    • inherit:預設值。請使用父項中設定的方向。
    ,瞭解如何調查及移除這項存取權。
  3. 如要查看反向文字和版面配置,請執行應用程式。

虛擬語言代碼

虛擬語言代碼是模擬的語言代碼,其用途是假設應用程式在翻譯過後會出現的 UI、版面配置、RTL 和其他翻譯問題。虛擬語言代碼可針對所有可翻譯的訊息,提供能以英文判讀的即時自動翻譯功能,因此您仍可在原始碼中擷取無法翻譯的訊息。

如要進一步瞭解如何使用虛擬語言代碼,請參閱「使用虛擬語言代碼測試應用程式」。