Đa ngôn ngữ ứng dụng Java

Đa ngôn ngữ là chủ đề của Toàn cầu hóa (i10n) và Bản địa hóa (l10n) bao hàm nhiều khía cạnh khác nhau. Bài viết dưới đây minh họa việc đa ngôn ngữ một cách đơn giản và thực dụng. Cần viết 1 class Java là controller và 3 file properties để chứa key-value pairs. Thêm 1 class nữa để gọi ra phương thức chuyển ngữ (method có tên getText()). Cấu trúc thư mục xem góc trên phải của ảnh chụp màn hình:

multi_language_in_Java_programming

(Bạn có thể  click chuột phải, chọn view image trong một của tab mới để nhìn cho rõ)

File LanguagesController.java

3 tập tin resources dưới đây đặt ngay trong thư mục source Java là language.properties, language_vi.properties, language_en.properties.

File language.properties

File language_en.properties

File language_vi.properties

File Using.java

Tại bất cứ nơi đâu trong ứng dụng, bạn chỉ cần gọi method getText(“”), trong đó chỉ ra key của xâu ký tự thì bạn sẽ có được value tương ứng. Số lượng ngôn ngữ hỗ trợ là không giới hạn. Số cặp key-value để biểu diễn các chuỗi ký tự (String) cũng không giới hạn.

 

Mẹo: Kinh nghiệm thực tế cho thấy việc Đa ngôn ngữ đôi khi phức tạp hơn bạn nghĩ. Trong các tình huống chữ tượng hình, chữ Arap, v.v.. Các lỗi phát sinh do bộ mã kỹ tự. Khi đó có công cụ hỗ trợ chuyển đổi (convert) ký tự unicode sang ký tự escape unicode:
http://www.mobilefish.com/services/unicode_escape_sequence_converter/unicode_escape_sequence_converter.php

File language_vi.properties sẽ có tác dụng tương như file ở trên. Ưu điểm: Sau khi chuyển ký tự sang dạng escape unicode, file không bị lỗi khi lưu tập tin ở các chế độ encoding khác nhau:

Tại sao lại đặt key rườm ra như thế này: com.infoTech.highProfile.SmartJob , bởi vì số lable, văn bản tĩnh trong ứng dụng là rất nhiều, bạn phải phân nhóm theo cấu trúc cây (được phân tách bởi dấu chấm) để dễ quản lý, giống như đặt tên package trong thư mục mã nguồn Java vậy.

Tải về mã nguồn project: MultiLanguage
hoặc clone/fork từ repository Github: https://github.com/SmartJobVN/Java_multilanguage

Xem thêm: Câu hỏi phỏng vấn java

Đỗ Như Vý – developer tại SmartJob


java,
multi-language,