LINUX.ORG.RU

gettext: добавить парсер/синтакс


0

0

Занимаюсь переводом одного php-шаблонизатора на gettext. Шаблоны содержат конструкции вида {tut_kakajato_stroka}, которые регекспами заменяются на локализованные строки. Хочу прикрутить к этому gettext с минимальными изменениями в структуре работы шаблонизатора. Так как шаблоны парсятся регекспами, а не include'ятся, заменить {} на _() нельзя. Я могу прогонять через gettext всё содержимое {}, но как поступить с pot-файлом? xgettext не понимает строки вида {строка} и игнорит их.

В документации и гугле ничего не нашел, хотя рыл долго. Пните в нужную сторону, плз.

★★★★★

Тупейший вариант, который приходит в голову - теми же регекспами перегнать шаблон в исходник на языке, который xgettext понимает.

Deleted
()
Ответ на: комментарий от Deleted

Это крайний вариант, хочется как-то более правильно...

AngryElf ★★★★★
() автор топика

А что мешает вместо

preg_replace('/{(.+?)}/', $text[$lang]['\1'], $tmpl)

писать

preg_replace('/{(.+?)}/', _('\1'), $tmpl); ?

friday ★★★
()
Ответ на: комментарий от friday

Ничего не мешает. xgettext только соберет по всему дереву ровно одну строку - "\1" вместо нормальных строк :-)

AngryElf ★★★★★
() автор топика
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.