Как настроить poedit для извлечения строк из XML-файла?
У меня есть элементы навигации Zend Framework в .xml, например:
<entry-i> <label>Text to translate</label> <params> ... <params> <entry-i>
И я хочу поедить читать только сообщения от <label> с.
<label>
Я также искал решение, и я только что заставил его работать!
В Poedit (у меня есть 1.4.2), добавьте новый парсер (Edit > Preferences) со следующимсвойства:
Edit > Preferences
XML
*.xml
xgettext --force-po -o %o %C %K %F -L glade
-k%k
%f
--from-code=%c
В своем проекте перевода добавьте label и title в список ключевых слов и обновите каталог.
label
title
Приведенный выше совет использовать неправильный экстрактор Glade для анализа non-Glade XML-файлов неверен.Это никогда не будет работать хорошо (пример: некоторые комментарии здесь).Конечно, это было лучше, чем ничего в 2010 году.
Начиная с gettext 0.19.7 (в комплекте с Poedit начиная с 1.8.7), есть лучший способ: теперь есть встроенная поддержка вgettext для пользовательских файлов XML по правилам ITS .
Лучший способ извлечь строки из пользовательского файла XML - это
-L glade
.its
.loc
Для тех, кто сталкивается с проблемами с конфигурацией Poedit в Windows, особенно если вы получаете сообщение об ошибке, гласящее, что glade и expat недоступны, замените прилагаемый xgettext.exe на текущий из проекта gnuwin32:
http://gnuwin32.sourceforge.net/packages/gettext.htm
Вам необходимо скачать двоичные файлы и зависимости. Однако необходимо извлечь только двоичный файл xgettext.exe и связанные файлы (просто запустите его, и он сообщит вам, чего не хватает)
Отлично сработало !! Я обнаружил, что проблема с «glade не поддерживается» с помощью Poedit 1.4.6 в Windows 7, но я исправил ее, загрузив последние двоичные файлы и зависимости gnuwin32, как сказал пользователь 496209. Не загружайте полный пакет, потому что PoEdit поставляется с собственной библиотекой gettext, поэтому просто загрузите двоичные файлы и зависимости и замените запрошенные файлы в папку poedit.
Похоже, PoEdit еще не поддерживает XML.
Я создал небольшой скрипт php для извлечения меток в файл .php, который PoEdit понимает.
$xml = simplexml_load_file("../application/configs/navigation.xml") or die("Error: Cannot open XML file"); echo '<?'; foreach($xml->xpath('//label') as $label){ echo 'echo _("'.$label.'");'. PHP_EOL; }