Đa ngôn ngữ trong android (Bài 8)

Đa ngôn ngữ trong android giúp cho ứng dụng android có thể hiển thị giao diện với nhiều ngôn ngữ khác nhau tuỳ thuộc vào việc người dùng lựa chọn ngôn ngữ hiển thị trên thiết bị của họ.

Để làm cho ứng dụng của bạn có tính tương tác nhiều hơn, ứng dụng của bạn nên xử lý văn bản, số,… theo cách phù hợp với ngôn ngữ mà ứng dụng của bạn sẽ được sử dụng. Cách thay đổi chuỗi sang ngôn ngữ khác nhau được gọi là nội địa hóa (localization).

Đa ngôn ngữ trong android – Nội địa hoá chuỗi

Mặc định android sử dụng ngôn ngữ tiếng Anh là ngôn ngữ chính và nạp chuỗi từ res ⇒ values ⇒ strings.xml. Do đó, nếu bạn muốn bổ sung thêm những ngôn ngữ khác, bạn cần phải tạo thư mục với tên được đặt theo quy tắc là value-mã ngôn ngữ theo từng quốc gia.

Ví dụ nếu bạn muốn thêm tiếng Việt, bạn sẽ phải tạo một thư mục với tên values-vi, sao chép tập tin strings.xml vào trong thư mục này và dịch tất cả các chuỗi sang ngôn ngữ tiếng Việt.

Bảng dưới đây cung cấp cho bạn mã ngôn ngữ mà android hỗ trợ

Language Locale values/strings.xml
German de values-de/strings.xml
Chinese zh values-zh/strings.xml
Czech cs values-cs/strings.xml
Dutch nl values-nl/strings.xml
French fr values-fr/strings.xml
Italian it values-it/strings.xml
Japanese ja values-ja/strings.xml
Korean ko values-ko/strings.xml
Polish pl values-pl/strings.xml
Russian ru values-ru/strings.xml
Spanish es values-es/strings.xml
Arabic ar values-ar/strings.xml
Bulgarian bg values-bg/strings.xml
Catalan ca values-ca/strings.xml
Croatian hr values-hr/strings.xml
Danish da values-da/strings.xml
Finnish fi values-fi/strings.xml
Greek el values-el/strings.xml
Hebrew iw values-iw/strings.xml
Hindi hi values-hi/strings.xml
Hungarian hu values-hu/strings.xml
Indonesian in values-in/strings.xml
Latvian lv values-lv/strings.xml
Lithuanian lt values-lt/strings.xml
Norwegian nb values-nb/strings.xml
Portuguese pt values-pt/strings.xml
Romanian ro values-ro/strings.xml
Serbian sr values-sr/strings.xml
Slovak sk values-sk/strings.xml
Slovenian sl values-sl/strings.xml
Swedish sv values-sv/strings.xml
Tagalog tl values-tl/strings.xml
Thai th values-th/strings.xml
Turkish tr values-tr/strings.xml
Ukrainian uk values-uk/strings.xml
Vietnamese vi values-vi/strings.xml

Tóm lại nội địa hóa hoạt động như sau

Khi người dùng thay đổi ngôn ngữ điện thoại thông qua thiết lập Settings ⇒ Language & Input, hệ điều hành Android sẽ tự kiểm tra đối với các nguồn tài nguyên ngôn ngữ thích hợp trong ứng dụng.

Nếu ứng dụng hỗ trợ lựa chọn ngôn ngữ, android tìm kiếm các nguồn tài nguyên phù hợp với ngôn ngữ được chọn từ values-(mã nguôn ngữ)

Nếu các chuỗi nội địa hoá bị thiếu, android sẽ nạp các chuỗi đó từ tập tin strings.xml (res ⇒ values ⇒ strings.xml)

Đa ngôn ngữ trong android – Một số lưu ý khi xử lý

Nên làm

Luôn luôn khai báo các chuỗi trong tập tin strings.xml

<string name="your_address">Enter your address</string>

Sử dụng nó trong xml

<TextView ...   android:text="@string/your_address"  />

Sử nó trong mã java

txtName.setText(R.string.your_address);

Không nên làm chỉ định trực tiếp trong xml hay trong mã java

<TextView ...   android:text="Enter your address"  />
txtName.setText("Enter your address");

Đa ngôn ngữ trong android – Các bước thực hiện

Sử dụng project hiện có hoặc tạo mới project trong Android Studio và thực hiện các bước bên dưới để tạo ứng dụng android hỗ trợ 2 ngôn ngữ là tiếng Việt và tiếng Anh

Bước 1: Mở tập tin strings.xml và bổ sung nội dung sau trước thẻ </resources>. Đây chính là những nội dung sẽ được việt hoá.

<string name="welcome">Welcome!</string>
<string name="username">Username</string>
<string name="password">Password</string>
<string name="login">Login</string>
<string name="signup">Don\'t have account? Sign Up</string>

Bước 2: Tạo thư mục với tên values-vi bên dưới thư mục res

Chuột phải res -> chọn New -> chọn Directory -> nhập tên thư mục là values-vi

Bước 3: Sao chép tập tin strings.xml từ thư mục values và dán vào thư mục values-vi

đa ngôn ngữ trong android

Bước 4: Việt hoá nội dung trong tập tin strings.xml của thư mục values-vi

<string name="welcome">Xin chào!</string>
<string name="username">Tên đăng nhập</string>
<string name="password">Mật khẩu</string>
<string name="signup">Chưa có tài khoản? Đăng ký</string>
<string name="login">Đăng nhập</string>

Bước 5: Tạo activity tên SampleMultiLangActivity

Thiết kế giao diện

da ngon ngu trong android 4

Đa ngôn ngữ trong android – Chạy ứng dụng

Ngôn ngữ thiết bị là English

da ngon ngu trong android 3

Ngôn ngữ thiết bị là Tiếng Việt (Thay đổi ngôn ngữ thiết bị bằng cách chọn Setting -> chọn Language & Input -> chọn Tiếng Việt)

da ngon ngu trong android 2

Xem giáo trình môn Phát triển App Android

Trả lời