Kiểm thử ứng dụng bằng giả ngôn ngữ

Ngôn ngữ giả lập là một ngôn ngữ bản địa hoá được thiết kế để mô phỏng các đặc điểm của ngôn ngữ tạo nên giao diện người dùng, bố cục và các vấn đề khác liên quan đến dịch thuật khi một ứng dụng được dịch. Ngôn ngữ giả lập được tạo bằng các bản dịch nhanh và tự động có thể đọc được bằng tiếng Anh cho mọi thông báo có thể bản địa hoá. Văn bản không được giả lập sẽ trỏ đến các thông báo không dịch được trong mã nguồn của bạn.

Ngôn ngữ giả lập giúp tiết kiệm thời gian và tiền bạc vì 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 gửi thông điệp của mình đến kho lưu trữ nguồn để gửi đi dịch sau này. Để biết danh sách các vấn đề có thể xảy ra với bản dịch, hãy xem phần Phát hiện các vấn đề về bản địa hoá.

Hình 1. Ngôn ngữ giả lập tiếng Anh (XA).

Tên ngôn ngữ giả lập của Android tuân theo các quy ước đặt tên chuẩn áp dụng cho ngôn ngữ và mã ngôn ngữ có thể được phân tích cú pháp bằng bất kỳ ngôn ngữ lập trình nào tuân thủ BCP 47. Do đó, ngôn ngữ giả lập cũng giống như mọi ngôn ngữ khác, chẳng hạn như tiếng Pháp, tiếng Trung hoặc tiếng Nga.

Nền tảng Android cung cấp 2 ngôn ngữ giả lập sau đây để biểu thị ngôn ngữ từ trái sang phải (LTR) và ngôn ngữ từ phải sang trái (RTL):

Hình 2. Ngôn ngữ giả lập AR (XB).

Tiếng Anh (XA): thêm các dấu trọng âm Latinh vào văn bản giao diện người dùng tiếng Anh cơ bản, mở rộng văn bản gốc bằng cách thêm văn bản không có dấu trọng âm và đặt từng đơn vị thông điệp trong dấu ngoặc để hiển thị các vấn đề tiềm ẩn từ văn bản mở rộng. Các vấn đề tiềm ẩn có thể là lỗi bố cục và cú pháp thông điệp có định dạng không hợp lệ, chẳng hạn như một câu bị tách thành nhiều phần hiển thị dưới dạng nhiều thông điệp trong dấu ngoặc. Ngôn ngữ giả lập tiếng Anh (XA) được thể hiện trong hình 1.

AR (XB): đặt hướng văn bản của thông điệp gốc từ trái sang phải thành hướng từ phải sang trái, đảo ngược thứ tự của các ký tự trong thông điệp gốc. Ngôn ngữ giả lập AR (XB) được thể hiện trong hình 2.

Ngôn ngữ giả lập có thể giúp bạn tạo ra một phiên bản RTL của ứng dụng, ngay cả khi bạn không viết hoặc nói bất kỳ ngôn ngữ RTL nào.

Bật chế độ ngôn ngữ giả lập

Ngôn ngữ giả lập thường được thêm vào các bản dựng dành cho nhà phát triển. Khi bạn chọn một ngôn ngữ giả lập trên thiết bị của mình, tất cả các ứng dụng hỗ trợ ngôn ngữ giả lập đều mang đặc điểm của ngôn ngữ giả lập đã chọn, bao gồm mọi ứng dụng hệ thống, chẳng hạn như ứng dụng Cài đặt và bảng điều khiển Cài đặt nhanh.

Để sử dụng ngôn ngữ giả lập trong Android, bạn phải chạy Android 4.3 (API cấp 18) trở lên và bật các tuỳ chọn cho nhà phát triển trên thiết bị.

Quy trình sau đây giải thích cách bật chế độ ngôn ngữ giả lập:

  1. Trong Android Studio, hãy bật chế độ ngôn ngữ giả lập cho một ứng dụng cụ thể bằng cách thêm cấu hình sau vào tệp build.gradle:

    Groovy

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

    Kotlin

    android {
       ...
       buildTypes.getByName("debug") {
           isPseudoLocalesEnabled = true
       }
    }
    
  2. Tạo và chạy ứng dụng.

    Hình 3. Chọn một ngôn ngữ giả lập.

  3. Dùng ứng dụng Cài đặt để chọn một ngôn ngữ giả lập. Bước này thay đổi tuỳ theo phiên bản Android của bạn, như sau:

    Android 5.0 (API cấp 21) trở lên

    1. Trên thiết bị, hãy mở ứng dụng Cài đặt rồi nhấn vào Ngôn ngữ và nhập liệu > Tuỳ chọn ngôn ngữ.
    2. Trong danh sách Tuỳ chọn ngôn ngữ, hãy kéo thẻ để di chuyển một ngôn ngữ giả lập lên đầu danh sách và đặt đặt ngôn ngữ đó làm ngôn ngữ đang hoạt động. Xem hình 3.

    Android 4.4.4 (API cấp 19) trở xuống

    1. Trên thiết bị, hãy mở ứng dụng Cài đặt rồi nhấn vào Ngôn ngữ và nhập liệu > Tuỳ chọn ngôn ngữ > Thêm ngôn ngữ.
    2. Nhấn vào một ngôn ngữ giả lập để thêm vào danh sách Tuỳ chọn ngôn ngữ.
    3. Trong danh sách Tuỳ chọn ngôn ngữ, hãy kéo thẻ để di chuyển một ngôn ngữ giả lập lên đầu danh sách và đặt đặt ngôn ngữ đó làm ngôn ngữ đang hoạt động. Xem hình 3.

Phát hiện các vấn đề về bản địa hoá

Ngôn ngữ giả lập giúp tiết kiệm thời gian và là cách hiệu quả để phát hiện các vấn đề tiềm ẩn về khả năng bản địa hoá trong giao diện người dùng nhờ việc giúp bạn xác định các vấn đề trong những khía cạnh sau:

  • Các chuỗi được cố định giá trị trong mã (không thể gửi đi để dịch) sẽ hiển thị dưới dạng văn bản không có dấu trọng âm trong ngôn ngữ giả lập để giúp bạn dễ nhận thấy các chuỗi này.
  • Các vấn đề về bố cục của giao diện người dùng do tính năng mở rộng văn bản gây ra cho thấy vị trí giao diện người dùng có thể bị ngắt do độ dài văn bản.
  • Việc nối chuỗi hiển thị dưới dạng một thông báo được chia thành 2 hoặc nhiều dấu ngoặc. Điều này có thể gây khó khăn cho việc biên dịch chính xác vì người dịch phải dịch từng phần độc lập mà không biết là các phần đó có liên quan với nhau. Việc nối chuỗi cũng có thể làm cho bản dịch không chính xác vì các ngôn ngữ khác nhau có thể yêu cầu thứ tự các phần khác nhau, hoặc một cấu trúc câu hoàn toàn khác. Ví dụ: các ngôn ngữ như tiếng Nhật, tiếng Hàn và tiếng Tamil sẽ đặt động từ ở cuối câu. Khi nối một câu, người dịch không thể thay đổi thứ tự từ khi cần.

  • Các vấn đề về văn bản hai chiều (BIDI), chẳng hạn như khi nội dung theo một hướng văn bản chứa một cụm từ cùng dòng theo hướng ngược lại của văn bản khiến chuỗi trở nên khó đọc.

  • Những vấn đề từ phải sang trái (RTL), chẳng hạn như các phần tử không được phản chiếu. Ví dụ như một phần tử trên giao diện người dùng không di chuyển sang trái, văn bản không đảo ngược và di chuyển sang trái hoặc đặt sai dấu câu, chẳng hạn như "pseudolocales rule!" đổi thành "elur selacoloduesp!" thay vì "!elur selacoloduesp".