2012-03-26 79 views
5

在我的項目中,我希望對我現有的資源包進行編譯時檢查。我已經有一組*.properties本地化文件,我正要將它們連接到某個i18n工具。我在考慮定期的ResourceBundles,但我不喜歡這樣的事實,即這種機制不能保證任何形式的檢查,無論是編譯時間還是維護檢查,例如發現重複或查找未使用的密鑰。從i18n資源包中生成乾淨代碼的任何庫?

因此,我正在尋找一個庫,它將採用我現有的*.properties文件並將它們轉換爲乾淨整潔的Java代碼,我可以在我的項目中使用它。

最好的結果可能是擁有類似於GWT i18n支持的機制。一,乾淨的界面與所有消息一樣是一個單獨的方法。我看過jlibsForgeRock。我真的很喜歡jlibs,但它不是一個單獨的lib,因此我很難想象爲i18n引入如此巨大的lib依賴關係。 ForgeRock幾乎可以做我想做的,但它產生常量而不是乾淨的接口來處理,就像jlib一樣。

This entry blog也有助於理解我想要使用哪種方法。我對可用的i18n工具做了大量的研究,但我找不到那種能夠滿足我需求的最佳工具。

問候。

回答

0

我目前正在使用您正在尋找的圖書館種類,check it out。它仍在進行中,但我應該很快就會發布我的第一個版本。

第一個版本只包含對基於註釋的翻譯的支持。不過,我還沒有任何關於如何將現有項目遷移到c10n風格的想法。任何想法,建議總是歡迎!

+0

看起來很有前途,但它有多穩定?什麼牌照?我選擇的工具將用於商業產品。 – 2012-03-26 09:20:56

+0

許可證是Apache許可證2.0,因此商業用途沒有問題。恐怕我剛開始開發它,所以它現在處於* alpha *階段。目前沒有可用的穩定版本。我計劃在大約一個月內發佈第一個穩定版本,但是如果我有一些敏銳的用戶,我可以快點提高一點:) – rodion 2012-03-26 09:52:49

+0

如果你記錄下要做的事,我可以在業餘時間幫助一下。我可能會玩一些,從用戶的角度給你一個反饋,並幫助你完成一些編程任務。 – 2012-03-26 10:09:49

-1

我喜歡JUnit。不完全是你要找的東西,但通過創建測試,你可以確定de屬性文件中的所有項目都可用。

1

滿足您代碼生成要求的另一個庫是i18n-binder

個人而言,我會從另一個角度來處理這個問題,使用gettext框架,您可以在源代碼中標記可翻譯字符串並從中生成資源包。有工具和編輯器可以根據提取的字符串更新翻譯,並檢測不再使用或修改的字符串。

0

爲了解決這個問題,我實現了一個Message Compiler,它創建資源包文件和常量定義作爲來自單個源文件的鍵的Java枚舉。所以這些常量可以用在Java源代碼中,這是一種更安全的方法。消息編譯器不僅可以用於Java。它還爲Objective-C或Swift創建資源文件和常量,並可以擴展用於其他編程環境。