Writing translation » History » Version 6

« Previous - Version 6/15 (diff) - Next » - Current version
Valérie Isaksen, 07/11/2011 05:27 PM

Writing translation

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. Open and translate this file with an Editor (i.e. Notepad++) configured to store the file encoded as UTF-8 without BOM! The VirtueMart frontend language files are located in .../language/en-GB.

Rename the file(s) to the shortcut of your language, like de-DE or nl-NL and so on.

Helpful tools for translating language files are:, which can be downloaded frome here:
The missing_t is compatible Joomla 1.5 and Joomla 1.6. It creates languages files for Joomla compatible Joomla 1.6 and Joomla 1.7.

With this one you can translate directly from the frontend:

What you have to know and to consider

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

But the system is quite easy, when you know how it works. The system is build 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"

When you have questions, write to Valerie (

Redmine Appliance - Powered by TurnKey Linux