2009-02-23 33 views
9

有沒有人有過使用GNU gettext進行國際化的大型Java應用程序的開發經驗?我發現我真的很喜歡在源代碼中使用英文文本,但我想確保我所做的事情對於我所參與的相對較大的軟件項目來說是實用的。用於國際化的Java和GNU gettext

如果你有這樣的經歷,你有什麼用查找Java中的資源?我目前正在嘗試Gettext Commons(http://code.google.com/p/gettext-commons/),這似乎目前運作良好。

gettext的任何替代方法將原始文本保留在源代碼中?在Windows上支持的類似工具會很棒。

回答

6

JSOM開源OpenStreetMap Java編輯器項目使用Gettext庫來處理它的所有翻譯,並且它工作得非常好,因爲人們可以使用各種翻譯工具(如KBabel,poedit,launchpad ... )與po文件一起工作,因此在那裏沒有平臺限制。 我也不太明白爲什麼你認爲提到的設置不能在任何平臺上使用 - 你當然可以在Windows中使用gettext看到:herehere

鑑於gettext的受歡迎程度如何是我肯定會推薦它。

+0

感謝您的回答。我有問題試圖讓Windows版本的gettext正常工作,但這些問題可能已經解決了一些更多的努力。我使用Cygwin在我的Windows桌面上運行GNU版本,並且工作得很好。 – dcstraw 2009-07-09 20:36:22

3

你可以只使用plain old Java message resource bundles代替。

編輯:那麼,我們在開發團隊中真正使用的是標準TMX format,它允許您在XML文件中指定本地化字符串。它是翻譯工具常用的格式。 Here is a free one,可讓您更輕鬆地編輯這些文件。

儘管如此,我之前沒有提到它,因爲它沒有爲消息資源包提供任何真正的優勢或功能,除了使用XML處理工具進行更好的編碼處理(在處理國際化時編碼可能是一個真正的痛苦文字與英語不同)。

而且我們確實用的是我們的軟件是我們自己的框架,解析這個XML格式,讓我們無需重新啓動我們的應用程序語言(HTML頁面或Swing幀)之間切換。開發一個簡單的庫來處理這種直接的翻譯並不難,但缺點是你必須實現它。

+2

我評估了Java內置的國際化功能作爲一個選項,但我想知道,如果gettext的是一個可行的選擇,因爲它有超過資源包幾個優點(例如,處理複數的,代碼的可讀性)。 – dcstraw 2009-02-23 22:58:56