Поиск строковых литералов
-
03-07-2019 - |
Вопрос
В поисках локализации мне нужно найти все строковые литералы, разбросанные по нашему исходному коду.Я искал способ записать это в сценарий проверки исходного репозитория после модификации.(Тоестьпосле того, как кто-то что-то проверит, установите флажок, чтобы проверить эту статистику) Я, вероятно, буду использовать NAnt и CruiseControl или что-то в этом роде для управления CVS (ну, в моем случае StarTeam :( ) Но знаете ли вы какую-нибудь утилиту со скриптом (или командной строкой) для точного перебора исходного кода в поисках строковых литералов?Я понимаю, что мог бы выполнить простой поиск строк на основе регулярных выражений, но хочу немного больше денег.(Возможно, проанализируйте строку или распределите ее по категориям), потому что часто строка может не обязательно требовать перевода.Есть какие-нибудь идеи?
Решение
Visual Studio 2010 и более ранних версий:
- Поиск в файлах (CTRL+SHIFT+F)
- Использование:Регулярные выражения
- Найти:
:q
(строка, заключенная в кавычки) - Найти Все
Окно Поиска результатов теперь будет содержать отчет по всем файлам с номерами строк и саму строку со строкой, заключенной в кавычки.
Для Visual Studio 2012 и более поздних версий выполните поиск ((\".+?\")|('.+?'))
(ссылка, кончик шляпы к @CincauHangus)
Другие советы
Он использует скомпилированный двоичный файл вместо исходного, но строки Sysinternals Приложение> может быть полезным.
Чтобы найти все экземпляры Text = " textonly "
, используйте следующее регулярное выражение при поиске:
(Text=)(")([a-z])
Это поможет найти Text = " * "
, но исключить текст, который уже был преобразован для использования файлов ресурсов:
Text="<%$ Resources:LocalizedText, KeyNameFromResourceFile%>"
Также (>) ([a-z])
можно использовать для поиска литералов между тегами, например так:
<h1>HeaderText</h1>
Существует синтаксический анализатор C # в CodePlex , который вы, вероятно, можете использовать.