如何自动查找I18N违规行为

时间:2011-04-20 17:55:23

标签: grails internationalization codenarc

有没有在Grails项目中自动发现I18N违规?例如,

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

应该被标记,因为它没有使用<g:message>来获取标签值。

如果codenarc对此有一个规则会很好,但我不认为这样做。

1 个答案:

答案 0 :(得分:1)

我也在寻找这样的代码质量测试,但还没找到。

实现此应该相当简单 - 如果需要通过标记应用GSP中的所有文本内容,则GSP应完全由元素节点组成,而不包含文本节点。

问题的关键主要是XML问题:如何检查一组XML文档并标记那些包含文本节点的文档?

假设您可以在codenarc规则中导入org.codehaus.groovy.grails.commons.GrailsResourceUtils,您可以使用VIEWS_DIR_PATH属性来确定所有GSP文件所在的位置。

从那里,您需要的高级流程是:

  1. 构建应用程序中所有GSP文件的集合
  2. 对于每个文件,将内容加载到XML解析器(Java具有 lots )并检查每个节点的节点类型,标记包含文本节点的文件
  3. 我很欣赏这是一个非常高级别的解决方案,但从概念上讲它应该可行。