grails - 如何自动查找 I18N 违规

标签 grails internationalization codenarc

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

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

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

如果 codenarc 对此有规则,那就太好了,但我认为没有。

最佳答案

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

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

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

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

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

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

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

    关于grails - 如何自动查找 I18N 违规,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/5734539/

    相关文章:

    java - Intellij 属性文件的透明转换

    gradle - 我如何获得Gradle CodeNarc任务来检查Gradle构建文件?

    plugins - 在 Gradle 中配置 CodeNarc

    grails - 如何使用createCriteria在Grails中执行深度查询

    grails - 如何使用条件检索域对象

    angular - 在 Angular2 中传递 i18n 文本作为组件参数

    gradle - 如何使用不同的规则集为主类和测试类生成 Codenarc 报告?

    hibernate - 如何用Groovy域实现身份生成器

    javascript - 如何使用提交按钮免费提交AJAX表单

    php - 从简体到繁体中文的转换