Translating VirtueMart 2

In February 2012 we've opened a VirtueMart 2 translation project using the Transifex translation platform.

For information about how to use the system, please read the information provided here: []

Before you think about starting your own translation, check our translation project on Transifex at: []
Maybe a translation for VirtueMart 2 already is available in your language.

From the already existing translations at Transifex, we currently (April 2012) can provide automatically generated language packs at this link:

Additional information can be found in the 'sticky' topics at the top of the Language/Translations VM2 section in the forum:

Setting up your own translation environment

If you prefer to set up your own translation environment, there are a few tools which can be very helpful for the translation process.

1. In the Joomla Extensions Directory (JED) there are a some extensions for creating and editing language files at this location:
However, at the time of writing this, most of these have not yet been updated to work with the free Bing translation api instead of working with the Google translation api, which has become commercial (you have to pay for the service) earlier this year.

2. Creating language files using an editor

You could use for example an editor like Notepad++, which has a lot of useful utilities

The translation is quite simple. We now use the normal language file system of joomla (

Just look in the backend and frontend language folders of joomla. The main backend VirtueMart language file "en-GB.com_virtuemart.ini" is located in ...administrator/language/en-GB. The VirtueMart frontend language files are located in .../language/en-GB. You can open and translate these files with an Editor, configured to store the file encoded as UTF-8 without BOM! Rename the file(s) with the language prefix of your language, like de-DE or nl-NL and so on.

What you have to know and to consider

Be aware that we use a generic system to generate the titles and messages for the standard views in the backend. So you won't find these translation keys by searching for them and missing_t won't help you.

But the system is quite easy, when you know how it works. The system is built for the controllers, models, tables, and the title of a view.

Lets take the Controller as an example. The default call for storing a message is

$this->mainLangKey is JText::_('COM_VIRTUEMART_CONTROLLER_'.strtoupper($this->_cname));

and $this->_cname is the name of the controller

So at the end we have something like JText::sprintf('COM_VIRTUEMART_STRING_SAVED','COM_VIRTUEMART_CONTROLLER_PRODUCT');

COM_VIRTUEMART_STRING_SAVED="%s successfully saved" and

the %s means that sprintf places the first parameter, translated here "Product(s)" to %s, so we get "Product(s) successfully saved"

How to create a language pack

please take a look here

When you have questions, write to Jörg (

Updated by Jörg Kiekebusch over 12 years ago · 15 revisions