Poedit и XML-файлы - PullRequest
       80

Poedit и XML-файлы

4 голосов
/ 22 июля 2010

Как настроить poedit для извлечения строк из XML-файла?

У меня есть элементы навигации Zend Framework в .xml, например:

<entry-i>
    <label>Text to translate</label>
    <params>
       ...
    <params>
<entry-i>

И я хочу поедить читать только сообщения от <label> с.

Ответы [ 5 ]

11 голосов
/ 11 августа 2010

Я также искал решение, и я только что заставил его работать!

В Poedit (у меня есть 1.4.2), добавьте новый парсер (Edit > Preferences) со следующимсвойства:

  • Язык: XML
  • Список расширений, разделенных точками с запятой (например, .cpp; .h): *.xml
  • Команда парсера: xgettext --force-po -o %o %C %K %F -L glade
  • Элемент в списке ключевых слов: -k%k
  • Элемент в списке входных файлов: %f
  • Исходный код кодировки: --from-code=%c

В своем проекте перевода добавьте label и title в список ключевых слов и обновите каталог.

3 голосов
/ 18 мая 2016

Приведенный выше совет использовать неправильный экстрактор Glade для анализа non-Glade XML-файлов неверен.Это никогда не будет работать хорошо (пример: некоторые комментарии здесь).Конечно, это было лучше, чем ничего в 2010 году.

Начиная с gettext 0.19.7 (в комплекте с Poedit начиная с 1.8.7), есть лучший способ: теперь есть встроенная поддержка вgettext для пользовательских файлов XML по правилам ITS .

Лучший способ извлечь строки из пользовательского файла XML - это

  1. Добавить пользовательский экстрактор с вашим расширением, указывая стандартный вызов gettext, без бит -L glade.
  2. Напишите свои правила для вашего формата файла.
  3. Поместите их в расположениедругих файлов .its и .loc в установке Poedit.
2 голосов
/ 03 ноября 2010

Для тех, кто сталкивается с проблемами с конфигурацией Poedit в Windows, особенно если вы получаете сообщение об ошибке, гласящее, что glade и expat недоступны, замените прилагаемый xgettext.exe на текущий из проекта gnuwin32:

http://gnuwin32.sourceforge.net/packages/gettext.htm

Вам необходимо скачать двоичные файлы и зависимости. Однако необходимо извлечь только двоичный файл xgettext.exe и связанные файлы (просто запустите его, и он сообщит вам, чего не хватает)

0 голосов
/ 21 января 2011

Отлично сработало !! Я обнаружил, что проблема с «glade не поддерживается» с помощью Poedit 1.4.6 в Windows 7, но я исправил ее, загрузив последние двоичные файлы и зависимости gnuwin32, как сказал пользователь 496209. Не загружайте полный пакет, потому что PoEdit поставляется с собственной библиотекой gettext, поэтому просто загрузите двоичные файлы и зависимости и замените запрошенные файлы в папку poedit.

0 голосов
/ 23 июля 2010

Похоже, 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;
}
...