Вопрос такой: можно ли малой кровью научить Gettext собирать строки для перевода из программ, написанных не на одном из популярных языков программирования, а на черт знает чем?
Есть вот страшная софтина, веб-программа, с самописным шаблонизатором. Там макры пишутся так:
MACRO[data]
Причем бывает иногда и так:
MACRO[some literal, MACRO[some other data]]
Я запилил туда макросы для gettext и ngettext, но нужно как-то строки из шаблонов пособирать. Чтобы не париться с заголовком .pot-файла и нюансами, я написал программу на Python, которая строки выскабливает и делает для каждого шаблона файл на псевдо-C, который xgettext ест на ура.
Одна только проблема, что потом не разбери поймешь, где найденная строка встречалась в исходном файле шаблона. Эта информация, увы, теряется.
Поэтому лучшим выходом была бы версия xgettext, которая умеет читать эти шаблоны, либо возможность как-то научить текущую, надеюсь, для этого не нужно вскрывать исходники.
Хватит с меня того, что перловую реализацию gettext (Locale::gettext_pm) пришлось пропатчить, чтобы она язык брала тот, который дадут в аргументах, а не тот, который в переменных окружения записан.