download As you might already know, is leading Openbravo Turkish localization for nearly a year. First step in localization is to translate language files from English to Turkish. When I started translation I looked for some XML editors to use but no one seemed to fullfill my needs. I started using .net IDE. On the other hand, I was thinking to write a XML editor specialized to translate Openbravo.

I recently found some spare time and wrote the application which I name ObTranslator. First test were done by a few localization contributor in Turkey. And I decided to share this small application with Openbravo community.

You will find a download link, usage scenarios and a short manuel below.

Download : You can download the application here

Note : .net framework 3.0 has to be installed on your computer to use this app.

What ObTranslator does

You can edit Openbravo XML files with it.
The application creates a uniqe tag list from the selected XML file. As you might have already noticed, xml tags in language files occurs more than once. So this app changes all recurring instances at the same time. (the old "Replace All" function you know) 

You can update a target XML using a source XML
The app finds translated tags in one XML file and apply the translation to matching untranslated ones in other XMLs . I used this functionality like this. First I finished the biggest FIELD.XML file. I selected this file as a source XML and used the application to translated all matching tags in other XMLs. It was very fast and effective. It also helped very much for paralel XMLs. For example, FORMS.XML and MENU.xml (the original xml file names are longer but you get it ) are very similar. Once I translated one of them, I used the app to apply matching tags on the other. The result was awesome.

It helps on version upgrade
It helped me very much on version upgrade.  In fact, Openbravo has the functionality to import old versions XMLs and export them as new version. But this functionality didn't worked on my machine. So I used the old version XMLs as source and new versions as target. My app easily transported the translatiions to new version XML files.


  1. Place source XML file (translated or to be translated), using the browse button on the right.
  2. Place the target XML file here (If you are translating one XML, just browse the same file with source)
  3. Read the source XML with this button. Unique tag list of source XML will be shown in the upper grid.
  4. Read target XML with this button. File content will be shown in the lower grid as it is (not unique).
  5. With this button, translated tags in the upper grid applied to matching ones in the lower grid. Use this button to save your work.
  6. To translate first tags in every XML node, select "First Column". Filtering can be just applied to the upper grid.
  7. To filter untranslated tags select "columns != value". To filter translated ones select  "columns = value"
  8. Unique content in source XML is placed here.
  9. Content in target XML is placed here.
  10. This column can be edited only. Delete the text that is the same with original and place your translation.
  11. Messages of app can be seen here.

What ObTranslator does not

There will be a "Translation Management" module in 2.50 version of Openbravo which will be released in late 2008. Pheenan from Openbravo is the responsible of this module and he is preparing a full featured module embedded in Openbravo. The application I have written do not aims to have major translation functions that will be in the module. This is just a simple tool that helps in your daily usage and editing of XMLs.

What ObTranslator can do in the future

In fact, I was planning to write one more function in the application.  The app will basictly scan all the xml files in a directory and create a dictionary.xml which will include all the unique tags in the whole package. User can just edit this XML and apply to all other XMLs in the directory. This can help centralizing the translation.

I haven't planned a specific time for this functionality. And also, I thought that opening the application to Openbravo localizators worldwide and get their idea first is a better alternative.

I request the comments, ideas, bugs, feature requests of every person that use ObTranslator.