đa ngôn ngữ trong android

Msinh sống đầu

Mạng Internet đã tinh giảm khoảng cách thân rất nhiều fan bên trên nhân loại nên việc một ứng dụng của chúng ta được sử dụng vày không ít người dân sinh hoạt những quốc giá chỉ khác biệt không hẳn là vấn đề quá lạ lẫm. Để áp dụng của bạn cũng có thể cung cấp những hiểu biết tốt nhất có thể cho người sử dụng thì một trong những đó là cung cấp nhiều ngôn từ (Supporting Different Languages).

You watching: đa ngôn ngữ trong android

Android hiện này đã hỗ trợ khá tốt cho câu hỏi này với bây giờ bản thân sẽ ra mắt cùng với các bạn một đôi nét cơ bản duy nhất để cung cấp nhiều ngôn từ đến áp dụng Android.

Phân loại

Theo bản thân thì đa ngôn từ đến vận dụng Android sẽ tiến hành phân thành hai một số loại nhỏng sau:

Loại 1: Ứng dụng cung cấp nhiều ngôn ngữ, nhưng phiên bản thân ứng dụng KHÔNG có công dụng gửi ngôn ngữ. Ngôn ngữ của ứng dụng đã thay đổi theo ngữ điệu của hệ thống.Loại 2: Ứng dụng cung ứng đa ngữ điệu với chức năng biến hóa ngữ điệu.`Ngôn ngữ của ứng dụng vẫn độc lập cùng với ngữ điệu của hệ thống.

Về cơ bản, để giải pháp xử lý các loại 1 thì chúng ta chỉ việc thêm những resources mang đến ngữ điệu nhưng các bạn hỗ trợ là chấm dứt. Khi ngôn ngữ hệ thống bị đổi khác thì vận dụng cũng biến thành tự động cập nhật lịch sự ngữ điệu bắt đầu (trường hợp có).

Đối với một số loại 2, quanh đó vấn đề đề xuất thêm các resources mang lại ngôn từ cơ mà bạn hỗ trợ nhỏng loại 1, thì bạn còn yêu cầu xử trí ngôn ngữ vào áp dụng nhằm ngôn từ vận dụng hòa bình với ngôn từ khối hệ thống. Nên reviews khách quan thì các loại 1 vẫn đơn giản và dễ dàng rộng nhiều loại 2.

Một biện pháp mừng rỡ thì bạn có thể Gọi các loại một là đa ngữ điệu bị động vì các bạn sẽ không thẳng quản lý vấn đề chuyển đổi ngôn ngữ, nhưng hệ thống đang thao tác này thế bạn. Và đương nhiên một số loại 2 là nhiều ngôn từ nhà động vày bạn cần phải trường đoản cú xử trí việc biến hóa ngôn từ

*

Default Resources là gì?

Lúc bạn tạo một project Android thì Android Studio vẫn auto chế tạo ra cho mình một thư mục res bao gồm chứa tệp tin res/values/string.xml mặc định, đấy là một Một trong những Default Resources của áp dụng để knhị báo string. Có nhiều bạn lầm tưởng rằng tệp tin res/values/string.xml là giành riêng cho English, vấn đề đó KHÔNG CHÍNH XÁC.

Để bản thân giải thích thêm, nếu vận dụng của người sử dụng chỉ bao gồm một ngữ điệu duy nhất thì chúng ta cũng có thể mang đến tất cả các string vào vào file res/values/string.xml default này. nhưng không sự việc gì. Nếu ngữ điệu là Englsih thì những string là English, nếu như ngôn ngữ là Tiếng Việt thì những stirng trong những số ấy bao gồm value là Tiếng Việt (còn key thì vẫn được khuyên ổn là nên được sắp xếp theo English thì mình ko bàn nữa).

Tuy nhiên, trường hợp ứng dụng của chúng ta bao gồm từ bỏ nhị ngữ điệu trsinh hoạt lên thì bạn cần phải khẳng định ngôn từ nào trong những ngôn từ ấy đã là ngôn từ mang định của áp dụng. lấy một ví dụ giả dụ ứng dụng của doanh nghiệp chỉ gồm nhị ngữ điệu là English với Tiếng Việt, vậy lúc 1 tín đồ Nhật hay như là một fan Nga cần sử dụng áp dụng này thì các bạn sẽ muốn nó hiển thị tiếng gì? Tôi đoán rằng các bạn sẽ ước ao cho hiển thị English yêu cầu ko như thế nào, bởi vì ít nhất English cũng phổ biến rộng với tài năng có khá nhiều người nghe biết sẽ cao hơn nữa. bởi thế English ở đây đã là ngữ điệu mang định và chúng ta nên thêm những string English vào vào file res/values/string.xml mặc định.

Tại sao Default Resources lại quan trọng?

Lúc chạy áp dụng Android với 1 locale nhưng chúng ta ko hỗ trợ, Android vẫn load default string trường đoản cú file res/values/strings.xml. Nếu file mặc định này sẽ không trường thọ hoặc bị thiếu thốn một string mà lại ứng dụng cần, thì áp dụng của các bạn sẽ bị lỗi. lấy một ví dụ tiếp sau đây biểu lộ điều gì vẫn xảy ra nếu như file mặc định string không không hề thiếu.

Ví dụ: Một ứng dụng Android áp dụng hai string là text_a và text_b. Ứng dụng tất cả một file resource đã làm được localized (res/values-en/strings.xml) định nghĩa text_a với text_b trong English. Ứng dụng cũng có thể có một tệp tin default resource (res/values/strings.xml) tất cả định nghĩa text_a tuy thế KHÔNG gồm text_b.

lúc mà ứng dụng này được nhảy lên nghỉ ngơi device tất cả Locale là English, vận dụng đã chạy nhưng không có lỗi, bởi vì res/values-en/strings.xml tất cả chứa cả nhì string mà lại vận dụng đề xuất (text_a cùng text_b).

See more: Phần Mềm Chỉnh Màu Màn Hình Laptop Trên Windows 10, Hướng Dẫn Chỉnh Màu Màn Hình Máy Tính Giúp

Tuy nhiên, người dùng sẽ không còn thấy được text_b Lúc cơ mà vận dụng được bật lên sống device gồm Localce không giống English (ví dụ device bao gồm ngôn ngữ là Tiếng Việt).

*

Để tránh sự cố này, bạn phải đảm bảo an toàn tệp tin mặc định resource res/values/strings.xml vĩnh cửu và gồm chứa tát cả những string cơ mà vận dụng yêu cầu.

Tóm lại, defailt resources cần được khá đầy đủ nhất so với các localized resources.

Các bước làm ứng dụng hỗ trợ nhiều ngôn ngữ

Ở bên trên tôi đã giới thiệu một vài ba tư tưởng cơ bản, còn tiếng thì có lẽ rằng bọn họ đã đi vào vọc mang lại các bạn dễ hình dung nhé. Mà trước lúc nhảy vào vọc thì bọn họ yêu cầu xác minh chúng ta đã có tác dụng gì đã?

Với chủ đề như này thì yên cầu sẽ là làm một áp dụng hỗ trợ nhiều ngôn ngữ. Dường như có đề xuất thêm là vận dụng có ngôn từ khoác định là English, ngoại giả ứng dụng cung cấp thêm các ngôn ngữ sau là Tiếng Việt cùng 日本の.

Mình sẽ gợi ý tới chúng ta phương pháp làm cho với tất cả nhì các loại là nhiều ngữ điệu bị động (các loại 1) cùng đa ngữ điệu chủ động (loại 2). Chúng ta sẽ tạo nên nhì module passive và active sầu trong cùng một project.

Nlỗi mình đã giới thiệu làm việc trên thì với cả nhị một số loại ứng dụng nhiều ngôn từ dữ thế chủ động và thụ động thì chúng ta đa số nên thêm những resources đến ngữ điệu mà các bạn sẽ cung cấp, việc này Hotline là localized resources. Do kia đề xuất chúng ta vẫn cùng khám phá biện pháp "localized resources" trước

Localized resources

Trước không còn bạn phải tạo một project new, bởi vì trải đời bài toán thù là cần sử dụng English làm mang định nên chúng ta vẫn thêm các resources vào vào file res/values/strings.xml cùng được công dụng nhỏng trong hình dưới đây.

res/values/strings.xml

resources> string name="app_name">Multi Language Passivestring> string name="content">This is a multi-language applicationstring> string name="news">Google is adding Kotlin as an official programming language for Android developmentstring>resources>

*

Android Studio hiện nay bao hàm điều khoản cung cấp bài toán này tốt nhất. Trong hình trên bạn ấn vào chữ xuất hiện editor để msống màn hình hiển thị Translations Editor gồm giao diện nlỗi sau:

*

Mình đang lý giải chức năng của những button vào tab này:

Dấu "+" nhằm thêm một key với value string mớiDấu "-" nhằm xóa một key-value đang có sẵnQuả địa cầu: để thêm 1 ngữ điệu mớiDấu tích Show only keys needing translations chỉ hiện nay phần đông key bắt buộc dịch hoặc hiện tất cả những keyDấu "?" để mlàm việc document

Yêu cầu bài toán thù ban sơ là không tính support English thì bọn họ buộc phải support Tiếng Việt cùng 日本の* Vì vậy nên các bạn lựa chọn quả địa cầu và thêm hai ngôn ngữ là Japanese (ja) và Vietnamese (vi) nlỗi sau. Lưu ý, danh sách tất cả cung ứng tra cứu kiếm đề xuất chúng ta chỉ việc gõ ja với vie.

*

Sau khi triển khai thêm nhị ngôn từ mới Japanese (ja) và Vietnamese (vi), và dịch các string quý phái từng ngữ điệu khớp ứng chúng ta sẽ sở hữu nhỏng hình dưới đây.

*

Việc localized resources mang lại đó là dứt.

See more: Hướng Dẫn Cách Gỡ Bỏ Phần Mềm Không Có Trong Control Panel Win 10

Loại 1: Đa ngôn ngữ bị động

Tại một số loại 1 này thì chúng ta chỉ việc có tác dụng kết thúc bước localized resources, hiển thị những text view với string. Lưu ý rằng, layout editor của Android Studio có cung ứng xem pĐánh Giá layout với những ngữ điệu khác, bạn chỉ việc lựa chọn ngôn ngữ bạn có nhu cầu như nhỏ trỏ loài chuột trong hình.

*

Sau đó bạn chạy ứng dụng

Nếu ngôn ngữ của hệ thống là Tiếng Việt thì vận dụng sẽ hiển thị như sau:

*

Nếu ngữ điệu của hệ thống là 日本の thì áp dụng đang hiển thị nlỗi sau:

*

Nếu ngữ điệu của hệ thống không phải là nhị giờ đồng hồ trên, thì hệ thống vẫn hiển thị các string vào file default là English:

*

bởi thế tôi đang gợi ý mang đến các bạn chấm dứt nhiều loại 1 đa ngôn ngữ bị động, ngơi nghỉ chút làm bóc coffe đang

*

Có vẻ không hề ít nhỉ, tuy nhiên im tâm bản thân sẽ chỉ dẫn chúng ta theo lần lượt các bước, rồi cũng sẽ xong xuôi cả thôi

*

Bước 1: Cập nhật build.gradle:

build.gradle (Module active)

app android ... dataBinding enabled = true dependencies ... compile "com.android.support:design:26.+" compile "com.app android.support:recyclerview-v7:26.+" compile group: "com.google.code.gson", name: "gson", version: "2.7"

Cách 2: Các các bạn thực hiện localized resources giống hệt như nghỉ ngơi loại 1

res/values/strings.xml

resources> string name="app_name">Multi Language Activestring> string name="main_content">This is a multi-language applicationstring> string name="main_news">Google is adding Kotlin as an official programming language for Android developmentstring> string name="main_button_change_language">Change Languagestring> string name="change_language_title">Languagestring> string name="language_english" translatable="false">Englishstring> string name="language_japanese" translatable="false">日本のstring> string name="language_vietnamese" translatable="false">Tiếng Việtstring> string-array name="language_names"> item>

Chuyên mục: Chia sẻ