2009-02-23 6 views
9

Có ai có kinh nghiệm phát triển các ứng dụng Java lớn sử dụng GNU gettext để quốc tế hóa không? Tôi thấy rằng tôi thực sự thích có văn bản tiếng Anh trong mã nguồn của tôi, nhưng tôi muốn đảm bảo rằng những gì tôi đang làm là thiết thực cho dự án phần mềm tương đối lớn mà tôi là một phần của.Java và GNU gettext để quốc tế hóa

Nếu bạn có kinh nghiệm với điều này, bạn đang sử dụng cái gì để tìm kiếm tài nguyên trong Java? Tôi hiện đang cố gắng ra Gettext Commons (http://code.google.com/p/gettext-commons/), mà có vẻ là làm việc tốt cho đến nay.

Bất kỳ lựa chọn thay thế nào cho gettext giữ văn bản gốc trong mã nguồn của bạn? Một công cụ tương tự được hỗ trợ trên Windows sẽ rất tuyệt.

Trả lời

6

JSOM Dự án soạn thảo Java OpenStreetMap mã nguồn mở đang sử dụng thư viện Gettext để xử lý tất cả các bản dịch của nó và nó hoạt động rất tốt vì mọi người có thể sử dụng các công cụ dịch (như KBabel, poedit, launchpad ...) để làm việc với các tệp po nên không có ràng buộc nền tảng ở đó. Ngoài ra tôi hoàn toàn không hiểu tại sao bạn nghĩ rằng thiết lập đề cập không thể được sử dụng trên nền tảng nào - bạn chắc chắn có thể sử dụng gettext trong Windows xem: here hoặc here

Với cách phổ biến gettext là tôi chắc chắn sẽ khuyên bạn nên nó.

+0

Cảm ơn câu trả lời. Tôi đã có vấn đề cố gắng để có được phiên bản Windows của gettext để làm việc đúng cách, nhưng những vấn đề có lẽ có thể đã được làm việc ra với một số nỗ lực nhiều hơn nữa. Tôi đã sử dụng Cygwin để chạy phiên bản GNU trên máy tính để bàn Windows của tôi, và nó hoạt động tốt. – dcstraw

3

Thay vào đó, bạn chỉ có thể sử dụng plain old Java message resource bundles.

Chỉnh sửa: Vâng, những gì chúng tôi thực sự sử dụng trong nhóm phát triển của chúng tôi là tiêu chuẩn TMX format cho phép bạn chỉ định chuỗi địa phương hóa trong tệp XML. Nó là một định dạng thường được sử dụng bởi các công cụ dịch thuật. Here is a free one, cho phép bạn chỉnh sửa các tệp này dễ dàng hơn.

Tuy nhiên trước đây tôi chưa đề cập đến nó vì nó không cung cấp bất kỳ lợi thế hoặc chức năng thực sự nào cho gói tài nguyên thư, ngoại trừ xử lý mã hóa tốt hơn nhờ công cụ xử lý XML (mã hóa có thể là nỗi đau thực sự ở cổ khi xử lý quốc tế hóa) chữ trong các ngôn ngữ khác với tiếng Anh). Hơn nữa những gì chúng tôi thực sự sử dụng là phần mềm của chúng tôi là khuôn khổ riêng của chúng tôi phân tích định dạng XML này và cho phép chúng tôi thay đổi giữa các ngôn ngữ (trong trang HTML hoặc khung Swing) mà không cần khởi động lại ứng dụng của chúng tôi. Nó không phải là khó khăn để phát triển một thư viện đơn giản mà xử lý các bản dịch theo cách này, nhưng nhược điểm là bạn phải thực hiện nó.

+2

Tôi đang đánh giá chức năng I18N tích hợp sẵn Java, nhưng tôi muốn biết liệu gettext có phải là một giải pháp thay thế thực tế hay không, vì nó có một số lợi thế (ví dụ: xử lý số nhiều, khả năng đọc mã) trên các gói tài nguyên. – dcstraw