чистые сообщения. свойства - PullRequest
0 голосов
/ 14 июля 2010

Есть ли способ автоматически очистить / показать неиспользуемые свойства в файле messages.properties, этот файл имеет огромную атм, но система сильно изменилась, и некоторые из них не используются, выполнение этого вручную потребуетдолгое время в проверке кода, и лично мне не нравится тратить время, какие-либо предложения?

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

Ответы [ 5 ]

2 голосов
/ 14 июля 2010

Нет, нет. И да, это действительно одна из задач / обязанностей, за которые вам платят.

Чтобы упростить обслуживание сейчас и в будущем, я сам использую древовидное соглашение при вводе сообщений, чтобы я (и мои преемники) могли легко соотносить местоположение / использование сообщений на стороне просмотра. Немного в стиле pagename.parentid.childtype.childname.attributename

например. home.login.label.username.tooltip ключ, который указывает на home.jsp с:

<form id="login">
    <label for="username" title="${text['home.login.label.username.tooltip']}">

Соблюдайте это соглашение последовательно, и вы поймете, что все это будет легче поддерживать.

Регистрация доступа к свойствам не будет быстрой помощью. В конечном итоге вы будете тратить больше времени.

2 голосов
/ 14 июля 2010

Я думаю, что лучше всего было бы написать обертку вокруг объекта Properties, чтобы можно было обрабатывать (то есть регистрировать) все обращения к свойствам этого объекта. Запустите вашу программу в обычном режиме, а затем проанализируйте журнал, чтобы выяснить, какие свойства действительно использовались.

В качестве уточнения вы можете дополнить объект Properties подсчетом, который сам отслеживает использование, и методом, который записывает все используемые свойства в файл для вас по требованию. Это избавит вас от необходимости возиться с файлом журнала.

1 голос
/ 14 июля 2010

Я не нашел никакого инструмента для этого, и я не верю, что они существуют на 100% правильно.Вы можете написать свой собственный анализатор, который будет искать во всех исходных файлах все ключи сообщений.Как только вы их найдете, вы можете удалить их из списка, чтобы ускорить прогресс.

Оставшиеся должны быть проверены вручную.

Однако это сэкономит много времени.

0 голосов
/ 05 февраля 2018

Этот проект с открытым исходным кодом меняет концепцию языковых файлов. Вы должны поддерживать структурированный XML-файл со всеми переводами. Затем i18n-maven-plugin автоматически создаст файлы свойств. Вы также можете создать класс доступа Java для доступа к ключам. Вы можете использовать другой инструмент для проверки кода, чтобы найти неиспользуемые методы доступа. Смотри: https://github.com/hoereth/i18n-maven-plugin/blob/master/doc/README_JAVA.md

0 голосов
/ 14 июля 2010

Если у вас есть доступ к bash (в Windows вы это делаете, если устанавливаете Git, в Mac / Linux у вас его уже есть), то эта небольшая строчка может сделать приличную работу по сужению поиска:

YOURPROPS=messages.properties
SRCDIR=src
egrep -v "($(
    cut -s -d = -f 1 <$YOURPROPS | 
        while read prop; do 
            grep -q -d recurse '"'"$prop"'"' $SRCDIR && echo "$prop"; 
        done | xargs echo | sed 's/ /|/g'))" $YOURPROPS | cut -s -d = -f 

(предполагается, что все свойства записаны как name=value без лишних пробелов вокруг знака равенства, что вы используете знак равенства вместо двоеточия или пробела для разделителя и т. Д.)

Он выведет все свойства, которые не будут заключены в двойные кавычки ни в одном файле в $SRCDIR.Это означает, что это может дать некоторые ложные срабатывания.Например, если у вас есть что-то вроде этого:

String msg = I18n.getString("foo.bar." + "baz");

... он будет думать, что свойство foo.bar.baz не появится в исходном каталоге.Но, как я уже сказал, это помогает немного сузить поиск.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...