В поисках строковых литералов - PullRequest
17 голосов
/ 03 октября 2008

В поисках локализации мне нужно найти все строковые литералы, засоренные нашим исходным кодом. Я искал способ написать это в проверке хранилища исходного кода после модификации. (IE после того, как кто-то проверит что-то, у меня есть настройки коробки, чтобы проверить эту статистику) Я, вероятно, буду использовать NAnt и CruiseControl или что-то еще для управления CVS (ну, в моем случае, StarTeam :() Но знаете ли вы какие-либо скриптовые сценарии (или командной строки) утилита для точного циклического перебора исходного кода в поисках строковых литералов? Я понимаю, что могу сделать простой поиск строк на основе регулярных выражений, но хочу немного больше отдачи (возможно, проанализировать строку или разбить ее на категории) ) Потому что много раз строка не обязательно требует перевода. Любые идеи?

Ответы [ 4 ]

36 голосов
/ 03 октября 2008

Visual Studio 2010 и более ранние версии:

  1. Найти в файлах (CTRL + SHIFT + F)
  2. Использование: регулярные выражения
  3. Найти: :q (строка в кавычках)
  4. Найти все

Окно Find Results теперь будет содержать отчет обо всех файлах с номерами строк и самой строкой со строкой в ​​кавычках.

Для Visual Studio 2012 и более поздних версий выполните поиск ((\".+?\")|('.+?')) ( ссылка , подсказка к @ CincauHangus )

2 голосов
/ 03 октября 2008

Он использует скомпилированный двоичный файл вместо исходного, но может пригодиться приложение Sysinternals Strings .

1 голос
/ 28 апреля 2015

Чтобы найти все Text="textonly" экземпляры, используйте следующее регулярное выражение при поиске:

(Text=)(")([a-z])

Это справка для поиска Text="*", но исключая текст, который уже был преобразован для использования файлов ресурсов:

Text="<%$ Resources:LocalizedText, KeyNameFromResourceFile%>"

Также (>)([a-z]) может использоваться для поиска литералов между тегами, например:

<h1>HeaderText</h1>
0 голосов
/ 03 октября 2008

На CodePlex есть синтаксический анализатор C #, который вы, вероятно, можете использовать.

...