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