См. Существует ли полуавтоматический способ извлечения строк для i18n? для автоматического способа решения этой проблемы. Хотя связанный с ответом характерен только для Java, тот же механизм / схема отлично подойдет для PHP.
Если это слишком много, наша Система поиска исходного кода (SCSE) может идентифицировать их тривиально, оставляя вам решать, что делать с каждой строкой.
SCSE - это своего рода супер-grep, который работает с языковой структурой, а не с необработанным символьным текстом. Запросы указываются в виде языковых токенов, а не строк. SCSE индексирует все токены множества файлов исходного кода, а затем использует этот индекс для оптимизации поиска. Поскольку он использует лексеры с точным языком, он понимает точные границы строк, комментариев, чисел, ключевых слов и пробелов. Запросы нечувствительны к языку. Таким образом, чтобы найти все места, где идентификатору, который имеет «foo» в середине, присваивается константа, можно написать запрос:
I=*foo* '=' N
, где в запросе говорится "найти I (средства для чистки зубов) с подстановочным знаком, за которым следует языковой токен =,
с последующим любым N (число).
Это все релевантно для поиска всех строковых литералов в вашей программе с помощью тривиального запроса:
S
, что означает, ну, в общем, поиск всех литералов S (trings) без каких-либо ограничений, независимо от типа и синтаксиса (PHP имеет много типов строковых литералов).
Полученные в результате попадания могут отображаться в пользовательском интерфейсе, но для целей OP можно включить ведение журнала и заставить инструмент предоставлять попадания и их местоположения по точному файлу и номеру строки.
В SCSE есть сканеры для PHP и многих других языков.