2011-04-20 25 views
8

有沒有辦法在Grails項目中自動查找I18N違規?例如,如何自動查找I18N違規

<td valign="top" class="name"><label for="enabled">Enabled:</label></td> 

應該被標記,因爲它不使用<g:message>來獲取標籤值。

如果codenarc有這樣的規則會很好,但我不認爲它是這樣。

+0

我回顧了很多關於i18n和l10n問題的代碼,並且我只保留了一些方便的正則表達式。許多是每種語言。 – Ethan 2011-04-29 23:46:20

回答

1

我也找過這樣的代碼質量測試,但還沒有找到。

實現這個應該是相當微不足道的 - 如果需要在GSP所有文本內容通過標籤來應用,你的GSP可能完全由元素節點沒有文本節點。

問題的癥結主要是XML問題:您如何檢查一組XML文檔並標記包含文本節點的文檔?

假設您可以在codenarc規則中導入org.codehaus.groovy.grails.commons.GrailsResourceUtils,則可以使用VIEWS_DIR_PATH屬性來確定所有GSP文件的存在位置。

從那裏,高水平的過程中,你需要的是:

  1. 構建所有GSP文件的集合中的應用
  2. 對於每一個文件,內容加載到一個XML解析器(Java有大量)和檢查節點類型,爲每個節點,標記那些包含文本節點

我明白,這是一個相當高的水平解決方案,但在概念上它應該工作的文件。

+0

GSP是否有效的XML? – Armand 2012-03-23 08:41:55