2009-08-13 29 views
5

Tôi đang viết một chương trình sử dụng jsp và java, làm cách nào tôi có thể sử dụng các tệp thuộc tính để hỗ trợ nhiều ngôn ngữ? và nhân tiện, luôn có một cái gì đó như \ u4345, Đây là gì? Làm thế nào để họ đến?Làm cách nào để xử lý nhiều ngôn ngữ trong java?

+0

bạn đang sử dụng loại khung nào? hầu hết các khung như struts, tapestry etc hỗ trợ i18n vì vậy bạn chỉ cần kiểm tra chúng. – nightingale2k1

Trả lời

14

Đối với nhiều ngôn ngữ, hãy xem lớp ResourceBundle.

Giới thiệu về \u4345, đây là một trong những góc kế thừa tối tăm và rất khó chịu của Java. Các tệp thuộc tính cần phải có trong ASCII, sao cho tất cả các ký tự không phải ASCII cần được mã hóa là \uxxxx (giá trị Unicode của chúng). Bạn có thể chuyển đổi tệp để sử dụng mã hóa này với native2ascii command line tool. Nếu bạn đang sử dụng một IDE hoặc một công cụ xây dựng, sẽ có một tùy chọn để gọi điều này tự động.

Nếu tập tin bất động sản là một cái gì đó bạn có toàn quyền kiểm soát chính mình, bạn có thể bắt đầu từ Java6 cũng sử dụng UTF-8 (hoặc bất kỳ bộ ký tự khác) trực tiếp trong file tài sản, và specify that encoding khi bạn tải nó:

// new in Java6 
props.load(new InputStreamReader(new FileInputStream(file), 'UTF-8')); 

Một lần nữa, điều này chỉ hoạt động nếu bạn tự tải các thuộc tính, không phải nếu người khác làm như vậy, chẳng hạn như ResourceBundle (được sử dụng để quốc tế hóa).

+0

Bài đăng trên blog cá nhân mô tả cách sử dụng ResourceBundles: http://tshikatshikaaa.blogspot.nl/2012/11/introduction-to-java-internationalization.html – JVerstry

1

Java tutorial trên i18n đã được đề cập bởi Peter. Nếu bạn đang xây dựng các JSP, bạn có thể muốn xem xét JSTL mà về cơ bản cho phép bạn sử dụng chức năng của ResourceBundle thông qua các thẻ JSP.

Các vấn đề liên quan