Đ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ợ

LanguageLocalevalues/strings.xml
Germandevalues-de/strings.xml
Chinesezhvalues-zh/strings.xml
Czechcsvalues-cs/strings.xml
Dutchnlvalues-nl/strings.xml
Frenchfrvalues-fr/strings.xml
Italianitvalues-it/strings.xml
Japanesejavalues-ja/strings.xml
Koreankovalues-ko/strings.xml
Polishplvalues-pl/strings.xml
Russianruvalues-ru/strings.xml
Spanishesvalues-es/strings.xml
Arabicarvalues-ar/strings.xml
Bulgarianbgvalues-bg/strings.xml
Catalancavalues-ca/strings.xml
Croatianhrvalues-hr/strings.xml
Danishdavalues-da/strings.xml
Finnishfivalues-fi/strings.xml
Greekelvalues-el/strings.xml
Hebrewiwvalues-iw/strings.xml
Hindihivalues-hi/strings.xml
Hungarianhuvalues-hu/strings.xml
Indonesianinvalues-in/strings.xml
Latvianlvvalues-lv/strings.xml
Lithuanianltvalues-lt/strings.xml
Norwegiannbvalues-nb/strings.xml
Portugueseptvalues-pt/strings.xml
Romanianrovalues-ro/strings.xml
Serbiansrvalues-sr/strings.xml
Slovakskvalues-sk/strings.xml
Slovenianslvalues-sl/strings.xml
Swedishsvvalues-sv/strings.xml
Tagalogtlvalues-tl/strings.xml
Thaithvalues-th/strings.xml
Turkishtrvalues-tr/strings.xml
Ukrainianukvalues-uk/strings.xml
Vietnamesevivalues-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