grails internationalization codenarc

grails - Cómo encontrar automáticamente violaciones de I18N



internationalization codenarc (1)

¿Hay alguna manera de encontrar automáticamente infracciones I18N en un proyecto de Grails? Por ejemplo,

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

debe marcarse porque no está utilizando <g:message> para obtener el valor de la etiqueta.

Sería bueno si Codenarc tuviera una regla para esto, pero no creo que lo haga.


También busqué una prueba de calidad de código así y todavía tengo que encontrar una.

Implementar esto debería ser bastante trivial: si se requiere que todo el contenido de texto en un SGP se aplique a través de etiquetas, su GSP debe consistir completamente de nodos de elementos y nodos de texto.

Este punto crucial del problema es predominantemente un problema XML: ¿cómo verifica un conjunto de documentos XML y marca aquellos que contienen nodos de texto?

Suponiendo que puede importar org.codehaus.groovy.grails.commons.GrailsResourceUtils en una regla codenarc, puede usar la propiedad VIEWS_DIR_PATH para determinar dónde viven todos los archivos GSP.

A partir de ahí, el proceso de alto nivel que necesitaría es:

  1. Crea una colección de todos los archivos GSP en la aplicación
  2. Para cada archivo, cargue el contenido en un analizador XML (Java tiene mucho ) y verifique el tipo de nodo para cada nodo, marcando aquellos archivos que contienen nodos de texto

Aprecio que esta sea una solución de muy alto nivel, pero conceptualmente debería funcionar.