2009-09-02 49 views
23

我用Java編寫的Web應用程序的目標是一些國家,它們都說着不同的語言(和更多的往往不是,幾種語言 - 這是歐洲爲你)。管理Java屬性的本地化文件

我們有一堆持有本地化字符串的.properties文件,我們目前的程序是在執行重大更新之前將語言特定的文件通過電子郵件發送給我們的合作伙伴進行更新。

然而,這個過程是相當容易出錯,因爲有時人們忘記翻譯新字符串,有時新的字符串沒有被添加到每一個語言文件,因此小失誤打通變得非常容易。

有誰知道任何現有的軟件可以幫助我們清除這個混亂?

至少,我正在考慮一些能夠加載主文件(例如英文)的本地化文件,然後突出顯示添加到主服務器或從主服務器中刪除的密鑰文件。

+0

這是我作爲實習生的第一個項目; -P!不幸的是,它是一個內部工具。 – 2009-09-02 01:37:58

回答

9

我用Jinto用於這一目的,以及EPFE(舊版本,還沒有試過最新的一個)。

兩者都是Eclipse插件,都是相當不錯的,如果你能得到過去的事實,他們將重新排列你的資源包鍵。然後還有Babel - 我沒有親自嘗試過,所以我不知道它有多好。

+0

這些確實是一些有趣的項目,但不幸的是,他們似乎不適合沒有一些主要工作的非技術翻譯人員。 – andri 2009-09-02 18:45:28

+0

@andri - 「主要工作」是什麼意思?您需要安裝Eclipse和其中一個插件 - 就是這樣;之後沒有任何「技術」參與。你的翻譯人員會看到這樣一個屏幕:http://www.guh-software.de/images/jinto1.gif,做他們的事情,你會找回你的資源包。如果你覺得冒險:-)你甚至可以向他們展示如何從Eclipse中檢查它。 – ChssPly76 2009-09-02 19:22:39

+0

我的意思是用戶是*非技術* - 安裝Eclipse和插件,更不用說使用SCM,遠遠超過他們。我需要使用精簡的Eclipse(因爲過多的功能必然會混淆它們)使用這些插件創建一個包,並希望它們在安裝時不會弄亂某些東西。 – andri 2009-09-02 21:31:18

0

CAL10N項目旨在解決這一問題。它通過添加驗證基元來建立在資源束上。它也相當容易使用。

3

Netbeans有一個真正優秀的Java屬性編輯器,顯示你每個地區並排側。你可以很容易地看到哪些屬性缺席不同的語言。

+0

鑑於Jinto尚未更新並且[MultiProperties](http://code.google.com/a/eclipselabs.org/p/multiproperties/)能夠運行,但使用自定義XML,NetBeans似乎是最佳選擇 - 即使Eclipse用戶。 – 2012-11-28 01:05:30

1

有時候人們會忘記翻譯新的字符串,有時候新的字符串不會被添加到每個語言文件中,因此很容易發生小錯誤。

我使用稍微不同的方法,我發送.properties文件包含現有的本地化字符串與新的未翻譯的字符串合併的順序,我希望他們回來。

新字符串標有「僞翻譯」字符,因此未翻譯的字符串很容易通過簡單的文本搜索找到。

翻譯者很少失去屬性或忘記翻譯字符串。最常見的錯誤是忘記從新翻譯的字符串中刪除僞翻譯字符。在將新翻譯提交到修訂控制系統之前進行差異檢查,可以很好地捕捉這些錯誤。

該系統運行得非常好,現在它是半自動化的,每個本地化更新大約需要一個小時,而不是過程完全手動時使用的1-2天。

我寫了自己的工具來生成合並文件,並對新主文件,舊本地化文件和新生成的合併文件進行了三方比較,但任何以相同方式合併更改的工具都可以處理這個流程。

3

對於沒有內部翻譯人員的語言的導入,管理和潛在的訂購翻譯,myGengo的String(http://mygengo.com/string/about)是一個免費的託管解決方案。支持爲各種平臺導入各種語言文件。 (完全披露 - 我是myGengo的聯合創始人)

+0

你的工具看起來很不錯。是否有任何建議甚至實施過程來配合版本控制?我希望別人翻譯我的文件,但我也必須在版本控制中保留最終結果。 – Lunikon 2011-05-25 09:47:06

+0

+1,任何工作流程操作? – 2011-09-11 17:31:53

1

我一直在使用JRC Editor來管理資源包。它將突出顯示缺少值的鍵,如下面的screen shot所示。

它還允許您使用本地語言(因此最終用戶友好)使用捆綁軟件,並將字符轉換爲「\ uxxx」,相當於幕後。

+0

可能很有趣,但它是否適用於Windows 3.1以外的任何操作系統? – 2016-03-08 03:44:14

3

即使這是出於時間範圍爲原來的海報:

i18nBinder

是一個Ant任務屬性文件轉換到Excel XLS文件。

語言環境在那裏放置在每個鍵(行)的列中。

然後它將xls文件中的更改寫回原始文件。這非常方便,而且由於您使用Excel進行編輯,所以每個人都熟悉這一點。

問候

0

答案是晚了一點,但是爲了將來的參考也有Tongue-Tied。它是一個開源的基於Web的應用程序,用於管理靜態資源和翻譯。翻譯可以通過網頁界面輸入。它支持導入/導出諸如java屬性文件,excel文件,csv等多種格式。如果需要,它還內置一個小型工作流程。

免責聲明:我是項目負責人。

5

我們使用https://webtranslateit.com/作爲託管服務。

我們的持續集成服務器會在發生更改時上傳我們的(英文)Java屬性文件。然後,不同語言的用戶可以登錄並更新其翻譯。

有一個不錯的API,它允許我們爲我們的Web應用程序「實時」獲取翻譯,但這只是此刻的內部解決方案。

當發佈時,我們下載文件,將它們與我們的應用程序捆綁在一起並進行部署。

該解決方案突出了翻譯,未翻譯,需要驗證,提供翻譯記憶庫以及整合(即Google翻譯)的內容。

此致敬禮, 亞歷山大。

-1

哇,我很驚訝有多瘋狂,人們沒有探索在Excel中明顯的導入。

轉到Excel - >導入 - >選擇屬性文件(選擇打開文件類型中的所有文件)。

它會詢問您是否希望分隔列,請檢查該選項。

在進口過程中的下一屏幕,它會問你想要什麼樣的分隔符,選擇其他,並放入盒(不帶引號)

選擇下一步,瞧「=」。你有一個excel表,物業準備好去。

+0

這個問題與Excel有什麼關係? – 2012-11-13 21:53:24

+1

這會導致很多問題,從第一個問題後如何處理引號開始。然後有unicode逃脫。可能還有其他一些。 – 2013-07-25 23:42:36

+1

這聽起來不錯,但我認爲你會得到unicodes的問題。以及如何再次導出屬性文件。 – OblongZebra 2014-01-16 08:26:39

0

我試圖Everit - i18n Props XLS Converter和它的工作。

您可以指定包含翻譯的.rsperties的位置,您將得到一個包含所有值的.xls文件。

此時,您可以將xls發送給您的翻譯人員,他們將用正確的翻譯填充它,然後將其轉換回.properties以用於您的Java項目。

該項目託管在github中,它需要使用maven和jdk8構建。