Writing translation » History » Revision 3
Revision 2 (Jörg Kiekebusch, 05/18/2011 11:44 AM) → Revision 3/15 (Max Milbers, 05/21/2011 09:31 PM)
h1. Writing translation The translation is quite simple. We now use the normal language file system of joomla (http://docs.joomla.org/Creating_a_language_definition_file). 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: com_missingt_0.4-2-ByMaxMilbersValerieIsaksenForj16-5.zip, which can be downloaded frome here: (http://dev.virtuemart.net/issues/294) (Currently the installer doesn't copy it's own language file. After installing it, you have to unzip this extension and copy its' language file en_GB_com_missingt.ini manually into ...\administrator\language\en-GB in order to make it look nice) With this one you can translate directly from the frontend: (http://www.allforjoomla.com/xplugins/plg-translatehelper) h1. 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 exampel. The default call for storing a message is JText::sprintf('COM_VIRTUEMART_STRING_SAVED',$this->mainLangKey); $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 COM_VIRTUEMART_CONTROLLER_PRODUCT="Product(s)" 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 (http://dev.virtuemart.net/users/48). Shukla (http://dev.virtuemart.net/redmine/users/9).