Project

General

Profile

Writing translation » History » Revision 6

Revision 5 (Valérie Isaksen, 06/07/2011 04:51 PM) → Revision 6/15 (Valérie Isaksen, 07/11/2011 05:27 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_VMversion_0.4.1.v2.zip, com_missingt_VMversion_0.4.1.zip, which can be downloaded frome here: 
 (http://dev.virtuemart.net/issues/294) 
 The missing_t is compatible Joomla 1.5 and Joomla 1.6. 1.5. It creates languages files for Joomla compatible Joomla 1.6 and Joomla 1.7. 

 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 example. 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).