Developing a Model-View-Controller (MVC) Component for Joomla!1.6 – Part 08

http://docs.joomla.org/

Introduction

This tutorial is part of the Developing a Model-View-Controller (MVC) Component for Joomla!1.6 tutorial. You are encouraged to read the previous parts of the tutorial before reading this.

Joomla!1.6 manages languages for components in four different situations:

  • displaying a component in the public site
  • managing a component in the backend
  • managing menus in the backend
  • installing a component (new in 1.6)

Joomla!1.6 uses two different location folder for languages:

  • one in administrator/language or language
  • one in the component folder (administrator/component/*component*/language or component/*component*/language)

It depends how the component is installed.

Adding language translation in the public site

With your favorite file manager and editor, put a file site/language/en-GB/en-GB.com_helloworld.ini. This file will contain translation for the public part. For the moment, this file is empty

site/language/en-GB/en-GB.com_helloworld.ini

   

For the moment, there are no translations strings in this file.

Adding language translation when managing the component

With your favorite file manager and editor, put a file admin/language/en-GB/en-GB.com_helloworld.ini. This file will contain translation for the backend part.

admin/language/en-GB/en-GB.com_helloworld.ini

COM_HELLOWORLD_HELLOWORLD_FIELD_GREETING_DESC="This message will be displayed"  COM_HELLOWORLD_HELLOWORLD_FIELD_GREETING_LABEL="Message"  COM_HELLOWORLD_HELLOWORLD_HEADING_GREETING="Greeting"  COM_HELLOWORLD_HELLOWORLD_HEADING_ID="Id"  

Adding language translation when managing the menus in the backend

With your favorite file manager and editor, put a file admin/language/en-GB/en-GB.com_helloworld.sys.ini. This file will contain translation for the backend part.

admin/language/en-GB/en-GB.com_helloworld.sys.ini

COM_HELLOWORLD="Hello World!"  COM_HELLOWORLD_DESCRIPTION="This is the Hello World description"  COM_HELLOWORLD_HELLOWORLD_VIEW_DEFAULT_TITLE="Hello World"  COM_HELLOWORLD_HELLOWORLD_VIEW_DEFAULT_DESC="This view displays a selected message"  COM_HELLOWORLD_MENU="Hello World!"  

Adding translation when installing the component

With your favorite file manager and editor, put a file language/en-GB/en-GB.ini. This file will contain translation for the install.

language/en-GB/en-GB.ini

COM_HELLOWORLD="Hello World!"  COM_HELLOWORLD_DESCRIPTION="This is the Hello World description"  

The COM_HELLOWORLD_DESCRIPTION can be used in the helloworld.xml file

Packaging the component

Content of your code directory

Create a compressed file of this directory or directly download the archive and install it using the extension manager of Joomla!1.6. You can add a menu item of this component using the menu manager in the backend.

helloworld.xml

<?xml version="1.0" encoding="utf-8"?>  <extension type="component" version="1.6.0" method="upgrade">     	<name>COM_HELLOWORLD</name>  	<!-- The following elements are optional and free of formatting conttraints -->  	<creationDate>November 2009</creationDate>  	<author>John Doe</author>  	<authorEmail>john.doe@example.org</authorEmail>  	<authorUrl>http://www.example.org</authorUrl>  	<copyright>Copyright Info</copyright>  	<license>License Info</license>  	<!--  The version string is recorded in the components table -->  	<version>0.0.8</version>  	<!-- The description is optional and defaults to the name -->  	<description>COM_HELLOWORLD_DESCRIPTION</description>     	<install> <!-- Runs on install -->  		<sql>  			<file driver="mysql" charset="utf8">sql/install.mysql.utf8.sql</file>  		</sql>  	</install>  	<uninstall> <!-- Runs on uninstall -->  		<sql>  			<file driver="mysql" charset="utf8">sql/uninstall.mysql.utf8.sql</file>  		</sql>  	</uninstall>  	<update> <!-- Runs on update; New in 1.6 -->  		<schemas>  			<schemapath type="mysql">sql/updates/mysql</schemapath>  		</schemas>  	</update>     	<!-- Site Main File Copy Section -->  	<!-- Note the folder attribute: This attribute describes the folder  		to copy FROM in the package to install therefore files copied  		in this section are copied from /site/ in the package -->  	<files folder="site">  		<filename>index.html</filename>  		<filename>helloworld.php</filename>  		<filename>controller.php</filename>  		<folder>views</folder>  		<folder>models</folder>  		<folder>language</folder>  	</files>     	<administration>  		<!-- Administration Menu Section -->  		<menu>COM_HELLOWORLD_MENU</menu>  		<!-- Administration Main File Copy Section -->  		<!-- Note the folder attribute: This attribute describes the folder  			to copy FROM in the package to install therefore files copied  			in this section are copied from /admin/ in the package -->  		<files folder="admin">  			<!-- Admin Main File Copy Section -->  			<filename>index.html</filename>  			<filename>helloworld.php</filename>  			<filename>controller.php</filename>  			<!-- SQL files section -->  			<folder>sql</folder>  			<!-- tables files section -->  			<folder>tables</folder>  			<!-- models files section -->  			<folder>models</folder>  			<!-- views files section -->  			<folder>views</folder>  		</files>  		<languages folder="admin">  			<language tag="en-GB">language/en-GB/en-GB.com_helloworld.ini</language>  			<language tag="en-GB">language/en-GB/en-GB.com_helloworld.sys.ini</language>  		</languages>  	</administration>     </extension>  

In this helloworld.xml file, languages are installed in:

  • administrator/language for the admin part (look at the xml languages tag)
  • components/com_helloworld/language for the site part (there are no xml languages tag in the site part of the xml description file, but the language folder is included)
Advertisements

Leave a Reply

Fill in your details below or click an icon to log in:

WordPress.com Logo

You are commenting using your WordPress.com account. Log Out / Change )

Twitter picture

You are commenting using your Twitter account. Log Out / Change )

Facebook photo

You are commenting using your Facebook account. Log Out / Change )

Google+ photo

You are commenting using your Google+ account. Log Out / Change )

Connecting to %s