Đ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
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
Đa ngôn ngữ trong android – Chạy ứng dụng
Ngôn ngữ thiết bị là English
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)