В наших JS-файлах мы используем следующий формат для перевода Gettext:
var str1 = '!t[The text that should be translated]';
var str2 = '!t[Some more text]';
Эти файлы JS будут проанализированы с помощью PHP, а проанализированные строки будут переведены через Zend Framework Zend_Translate. Сгенерированный JS выглядит так:
var str1 = 'The text that should be translated';
var str2 = 'Some more text';
Для извлечения строк, которые нужно перевести, и для перевода наших файлов PHP мы используем Poedit, он работает очень хорошо.
Есть ли способ проанализировать строки, которые нужно перевести, из '!t[...]'
с помощью Poedit?
Что бы решить проблему, так это своего рода парсер Poedit, основанный на регулярных выражениях. Есть ли такой парсер?
В качестве альтернативы мы могли бы определить парсер исходного кода на основе xgettext с параметром языка PHP в качестве параметра (вы должны это сделать, потому что xgettext не знает о файлах .js и обрабатывает их как файлы C). Затем мы используем следующий формат в наших файлах JS:
var str1 = '<?=_t("The text that should be translated")?>';
var str2 = '<?=_t("Some more text")?>';
Излишне говорить, что использовать код, который выглядит как php повсюду, просто для того, чтобы иметь возможность анализировать строки с помощью Poedit, действительно некрасиво.