【问题标题】:How to automatically find I18N Violations如何自动查找 I18N 违规
【发布时间】:2011-04-20 17:55:22
【问题描述】:

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

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

应该被标记,因为它没有使用&lt;g:message&gt; 来获取标签值。

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

【问题讨论】:

  • 我查看了很多关于 i18n 和 l10n 问题的代码,并且我只保留了一些正则表达式。许多都是每种语言。

标签: grails internationalization codenarc


【解决方案1】:

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

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

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

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

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

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

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

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2023-03-29
    • 1970-01-01
    • 1970-01-01
    • 2011-12-08
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多