2008-10-13 115 views
3

是否有任何工具可幫助JSP文件中的字符串國際化?用於幫助JSP中字符串國際化的工具

大多數IDE(例如,NetBeans)都爲Java代碼提供了這樣的功能。但是,對於NetBeans,JSP文件不存在此功能。

gettext爲例,這裏有各種工具幫助從代碼中提取文本字符串。類似於JSP的東西會很棒!

回答

0

這是一個合租強大的產品/解決問題的方法:Globalyzer

我沒有用它自己,但我做了一些研究,這在我以前的僱主的項目。我們需要從大量Java代碼和JSP中提取所有字符串。我們發現Globalyzer覆蓋了我們所有的需求。

最後我們決定不去Globalyzer,但那純粹是一個成本問題。

0

我發現這是一個workaround solution到這個問題。它遠非理想,但允許您使用IDE搜索所有字符串。解析解決方案:

  1. JSP編譯爲servlet,因此請爲您的文件系統上的每個JSP找到相應的servlet類。在Tomcat的情況下,這將是'工作'目錄。
  2. 導入相關的servlet java文件到IDE中,然後使用IDE的定期國際化工具:外部化字符串...(Eclipse中)/ 國際化嚮導(NetBeans的)。
+1

我沒有解決您的原始問題,我不明白這將如何幫助。如果您查看生成的servlet代碼,您會意識到爲每個html標記都會創建靜態字符串。這意味着你會將很多無意義的字符串國際化。 – 2008-10-20 20:36:22

2

我希望沒有人的頭腦,如果我碰到一個老問題...

當面臨同樣的問題,我放在一起(一)的方法在Gettext的風格在JSP中本地化的字符串(保持英語在源JSP中)和(b)一個Ant任務,它可以在JSP中找到這樣的字符串並生成一個Gettext POT文件。 (a)由WebGettext提供,其提供用於諸如${messages["Hello {0}"][username]}等表達式的EL解析器。解析器爲請求用戶的語言環境查找翻譯,並使用MessageFormat替換任何參數。 (b)由Regex2PotTask提供,它有點像xgettext,但是對於可配置的regex表達式而不是C,Java,Perl等,函數調用如gettext(「my string」)。

Tennera's home page已經在這裏。

Example JSP project - 見RUNNING.txt

這是目前所有有點粗糙,但我覺得基本都在那裏。如果有人表示有興趣,我甚至可能有動力將它「正確地」記錄下來......

0

通常,您可以使用xgettext命令從源代碼中提取可翻譯的字符串。它也支持各種語言,Java,但對JSP沒有本地支持。我發現雖然將語言參數設置爲PHP可以正確分析JSP文件,因爲PHP和JSP具有相似的語法。