Ищите вызовы функций в связке шаблонов, используя скрипт - PullRequest
0 голосов
/ 09 марта 2010

У меня есть загрузка шаблонов php, которые используют пользовательскую функцию перевода "__", т.е.

<?php echo __("Hello"); ?>

Мне нужно написать скрипт, который будет искать все эти вызовы функций (всего около 200 шаблонов).

т.е. он найдет __ ("Hello") и добавит его в массив предложений для перевода. Например, он найдет:

$sentences[] = "Hello";
$sentences[] = "Goodbye";
$sentences[] = "Random sentence to be translated";

В основном мне нужно найти строки, которые нужно перевести.

Какой язык, по вашему мнению, является лучшим языком для написания сценария? и вы думаете, что будет лучше использовать регулярное выражение?

Любая помощь, указывающая мне правильное направление, была бы превосходной!

Спасибо

1 Ответ

1 голос
/ 09 марта 2010

Я всегда прыгаю на Perl из-за проблем со строками.

Однако awk или sed могут легко решить вашу проблему.

Например, в Perl:

 while(<>) {
   if( $_ =~ /echo __\((".*?")\)/ ) {
     print '$sentences[] = ' + $1;
   }
 }

Обратите внимание, это будет захватывать только одну строку на строку. Вы можете сделать больше, но я оставлю это в качестве упражнения для читателя.

Кроме того, while (<>) будет перебирать каждую строку в каждом файле, который вы передаете в командной строке. Также есть способ прочитать все файлы в каталоге, если это то, что вам нужно.

...