Как автоматически найти нарушения I18N - PullRequest
8 голосов
/ 20 апреля 2011

Есть ли способ автоматически найти нарушения I18N в проекте Grails? Например,

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

должен быть помечен, потому что он не использует <g:message> для получения значения метки.

Было бы хорошо, если бы у codenarc было правило для этого, но я не думаю, что оно есть.

1 Ответ

1 голос
/ 30 апреля 2011

Я также искал такой тест качества кода и пока не нашел его.

Реализация этого должна быть довольно тривиальной - если весь текстовый контент в GSP должен бытьПрименяемый через теги, ваш GSP должен состоять полностью из узлов элементов и без текстовых узлов.

Суть проблемы состоит в основном в проблеме XML: как проверить набор документов XML и отметить те, которые содержат текстовые узлы?

Предполагая, что вы можете импортировать org.codehaus.groovy.grails.commons.GrailsResourceUtils в правиле кодирования, вы можете использовать свойство VIEWS_DIR_PATH, чтобы определить, где находятся все файлы GSP.

Оттуда, процесс высокого уровня, который вы бы сделалинужно:

  1. Создать коллекцию всех файлов GSP в приложении
  2. Для каждого файла загрузить содержимое в анализатор XML (Java имеет множество ) и проверьте тип узла для каждого узла, отметив те файлы, которые содержат текстовые узлы

Я ценю, что это решение очень высокого уровня, но концептуально оно должно работать.

...