Bản địa hoá giao diện người dùng bằng Translations Editor (Khung hiển thị)

Các khái niệm và cách triển khai Jetpack Compose

Translations Editor cung cấp một khung hiển thị tổng hợp và chỉnh sửa được cho tất cả tài nguyên chuỗi mặc định và đã dịch.

Để được hướng dẫn cách dịch ứng dụng sang nhiều ngôn ngữ, hãy đọc bài viết Hỗ trợ nhiều ngôn ngữ và văn hoá.

Hình 1. Translations Editor hiển thị văn bản ứng dụng trước khi dịch

Mở Translations Editor qua Design Editor

Bạn có thể mở Translations Editor qua Design Editor của Layout Editor để chỉnh sửa văn bản mặc định và văn bản dịch cho phù hợp hơn với bố cục của bạn. Để biết thông tin về cách chuyển đổi ngôn ngữ trong Design Editor, hãy xem phần Hiện văn bản đã dịch trong Design Editor.

  1. Trong bảng Project (Dự án) > Android ở bên trái, hãy chọn ModuleName > res > layout.
  2. Nhấp đúp vào content_main.xml để mở ra để chỉnh sửa.
  3. Nhấp vào thẻ Design (Thiết kế) ở góc dưới bên trái để hiện Design Editor.
  4. Trong Design Editor, hãy chọn danh sách thả xuống Language (Ngôn ngữ) .
  5. Chọn Edit Translations (Chỉnh sửa bản dịch) .

Hiện văn bản đã dịch trong Design Editor

Để xem cách thể hiện văn bản đã dịch trong bố cục của ứng dụng, hãy chuyển đổi văn bản giữa phiên bản mặc định và phiên bản đã dịch trong Design Editor, cụ thể như sau:

  1. Trong bảng Project (Dự án) > Android ở bên trái, hãy chọn ModuleName > res > layout.
  2. Nhấp đúp vào content_main.xml để mở ra để chỉnh sửa.
  3. Nhấp vào thẻ Design (Thiết kế) ở góc dưới bên trái để hiện Design Editor.
  4. Trong Design Editor, hãy chọn danh sách thả xuống Language (Ngôn ngữ) .
  5. Chọn biểu tượng Edit Translations (Chỉnh sửa bản dịch) .
  6. Chọn ngôn ngữ mà bạn muốn dùng để xem ứng dụng.

    Hình 2. Danh sách ngôn ngữ dạng thả xuống với tiếng Tây Ban Nha đang được chọn

Design Editor thể hiện bố cục của ứng dụng của bạn bằng ngôn ngữ đã chọn, trong trường hợp này là tiếng Tây Ban Nha.

Hình 3. Design Editor cho thấy văn bản đã dịch bằng tiếng Tây Ban Nha

Đặt Design Editor về ngôn ngữ mặc định

Để đặt lại ngôn ngữ về mặc định, hãy chọn es > Language (Ngôn ngữ) .

Quản lý và kiểm tra văn bản cần bản địa hoá

Nền tảng Android và Android Studio cung cấp một số tính năng giúp bạn quản lý và kiểm thử văn bản cần bản địa hoá trong ứng dụng. Những tính năng này có một số lựa chọn để giúp bạn xử lý những vấn đề liên quan đến chữ viết từ phải sang trái (RTL), chẳng hạn như tiếng Ả Rập hoặc tiếng Do Thái. Bằng việc kiểm tra văn bản cần bản địa hoá, bạn có thể điều chỉnh văn bản giao diện người dùng và bố cục tương ứng trước khi triển khai thông điệp của bạn đến kho lưu trữ nguồn để gửi cho bản dịch sau này.

Tái cấu trúc dự án để hỗ trợ RTL

Android Studio có một lệnh tái cấu trúc cho phép hỗ trợ văn bản hai chiều trong các phần tử TextView, ConstraintLayoutLinearLayout để các ứng dụng của bạn có thể hiển thị và cho phép người dùng chỉnh sửa văn bản trong cả chữ viết từ trái sang phải (LTR) và chữ viết từ phải sang trái (RTL). Lệnh này cũng cung cấp tính năng tự động phản chiếu bố cục giao diện người dùng của ứng dụng và mọi tiện ích xem. Để xem tính năng thay đổi hướng văn bản và phản chiếu bố cục, bạn cũng phải đặt giá trị cho các thuộc tính hướng văn bản và bố cục trong Layout Editor.

Quy trình sau đây thể hiện cách tái cấu trúc dự án để hỗ trợ RTL:

  1. Chọn Refactor > Add RTL support where possible (Tái cấu trúc > Thêm tính năng hỗ trợ RTL nếu có) để hộp thoại trong hình 4 xuất hiện.

    Hình 4. Thêm tính năng hỗ trợ RTL

    • Nếu phần tử <application> trong tệp AndroidManifest.xml của bạn không có thuộc tính android:supportsRTL="true", thì hãy chọn hộp đánh dấu Update AndroidManifest.xml (Cập nhật tệp AndroidManifest.xml).
    • Nếu targetSdkVersion của ứng dụng là 17 trở lên, hãy chọn Replace Left/Right Properties with Start/End Properties (Thay thế thuộc tính trái/phải bằng thuộc tính bắt đầu/kết thúc). Trong trường hợp này, các thuộc tính của bạn nên sử dụng "start" ("bắt đầu") và "end" ("kết thúc") thay vì "left" ("trái") và "right" ("phải"). Ví dụ: android:paddingLeft trở thành android:paddingStart.
    • Nếu targetSdkVersion của ứng dụng là 16 trở xuống, hãy chọn Generate -v17 Versions (Tạo phiên bản -v17). Trong trường hợp này, mã XML của bạn phải sử dụng cả hai tập hợp thuộc tính. Ví dụ: XML của bạn phải sử dụng cả android:paddingLeftandroid:paddingStart.
  2. Để hiện cửa sổ Find Refactoring Preview (Tìm bản xem trước tái cấu trúc), hãy nhấp vào Run (Chạy).

    Hình 5. Kiểm tra bản xem trước

  3. Nhấp vào Do Refactor (Tiến hành tái cấu trúc).

Để biết thêm thông tin về việc tái cấu trúc dự án để hỗ trợ RTL, hãy xem nội dung Hỗ trợ RTL gốc trong Android 4.2.

Thuộc tính về hướng văn bản và bố cục

Cửa sổ Properties (Thuộc tính) ở bên phải đưa ra thuộc tính textDirection để sử dụng với các tiện ích văn bản và thuộc tính layoutDirection để sử dụng với các tiện ích bố cục nhằm thay đổi hướng của văn bản và thành phần bố cục. Các thuộc tính chỉ hướng được liệt kê trong cửa sổ Properties (Thuộc tính) ở bên phải và dùng được trên API cấp 17 trở lên.

Để xem thay đổi về hướng văn bản và phản chiếu bố cục, bạn cũng phải tái cấu trúc dự án để hỗ trợ RTL. Trong tiếng Anh, việc thay đổi hướng văn bản chỉ di chuyển dấu câu từ bên phải sang bên trái của văn bản; ví dụ: "Hello World!" trở thành "!Hello World". Để thấy văn bản LTR chuyển sang RTL, bạn phải sử dụng ngôn ngữ RTL trong ứng dụng của mình. Nếu bạn muốn sử dụng tiếng Anh và thấy nút chuyển văn bản thành RTL cho mục đích thử nghiệm, hãy sử dụng pseudolocales. Pseudolocales độc lập với lệnh tái cấu trúc và các thuộc tính chỉ hướng.

Để truy cập và sử dụng các thuộc tính chỉ hướng, hãy làm như sau:

  1. Trong Layout Editor, hãy chọn một tiện ích văn bản.
  2. Mở cửa sổ Properties (Thuộc tính) rồi tìm thuộc tính RTL mà bạn muốn sử dụng. Để đặt giá trị cho thuộc tính, hãy chọn một trong các tuỳ chọn sau:

    • firstStrong: Mặc định cho chế độ xem gốc. Ký tự rõ hướng đầu tiên sẽ xác định hướng của đoạn văn bản. Nếu không có ký tự nào rõ hướng, hướng của đoạn văn bản sẽ là hướng bố cục đã được phân giải của khung hiển thị.
    • anyRtl: Hướng của đoạn văn bản là RTL nếu chứa ký tự rõ hướng RTL bất kỳ. Ngược lại, hướng của đoạn văn bản là LTR nếu chứa ký tự rõ hướng LTR bất kỳ. Nếu không có ký tự nào như vậy, hướng của đoạn văn bản sẽ là hướng bố cục đã được phân giải của khung hiển thị.
    • ltr: Hướng của đoạn văn bản là LTR.
    • rtl: Hướng của đoạn văn bản là RTL.
    • locale: Hướng của đoạn văn bản tuỳ thuộc vào ngôn ngữ bản địa hoá của hệ thống.
    • inherit: Mặc định. Sử dụng hướng được đặt trong phần tử mẹ.

    Lưu ý: Ký tự rõ hướng có hướng riêng được xác định sẵn, chẳng hạn như hầu hết ký tự chữ cái và âm tiết, chữ số phi La Mã và Ả Rập, Hán tự và ký tự dấu câu dành riêng cho những chữ viết đó.

  3. Để xem lại văn bản và bố cục đảo ngược, hãy chạy ứng dụng.