views:

114

answers:

3

Hello,

How to configure poedit to extract strings from xml file?

I have Zend Framework navigation items in .xml like this:

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

And I want poedit to read just messages from <label>s.

A: 

Looks like PoEdit does not support XML yet.

I have created a little php script, to extract the labels to .php file, which PoEdit does understand.

$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;
}
takeshin
+2  A: 

I have been searching for a solution as well, and I have just gotten it to work!

In Poedit (I have 1.4.2), add a new parser (Edit > Preferences) with the following properties:

  • Language: XML
  • List of extensions separated by semicolons (e.g. .cpp;.h): *.xml
  • Parser command: xgettext --force-po -o %o %C %K %F -L glade
  • An item in keywords list: -k%k
  • An item in input files list: %f
  • Source code charset: --from-code=%c

In your translation project, add label and title to your keyword list and update the catalog.

Youssef Eldakar
Thanks, this looks like some magic spell ;)
takeshin