8

无论如何,是否可以在 Grails 项目中自动查找 I18N 违规?例如,

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

应该标记,因为它不<g:message>用于获取标签值。

如果 codenarc 对此有一个规则会很好,但我认为没有。

4

1 回答 1

1

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

实现这一点应该相当简单——如果 GSP 中的所有文本内容都需要通过标签应用,那么您的 GSP 应该完全由元素节点组成,而没有文本节点。

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

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

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

  1. 构建应用程序中所有 GSP 文件的集合
  2. 对于每个文件,将内容加载到 XML 解析器(Java 有很多)并检查每个节点的节点类型,标记那些包含文本节点的文件

我很欣赏这是一个非常高级的解决方案,但从概念上讲它应该可以工作。

于 2011-04-29T22:16:07.990 回答