This is a quick and basic “how to” for anyone looking to add multi-language support to their content in Joomla 1.5. Eventually I imagine the folks over at the Joom!Fish project will get around to updating their excellent component, but until then anyone that’s in need of multi-lingual content using Joomla 1.5 is SOL.
My switch from the Joomla 1.0.x series to the new (and much improved) Joomla 1.5 series is still quite recent. I’m planning a post outlining the reasons why this is a “must upgrade” for anyone that uses Joomla, but as of yet haven’t found the time to do so.
Anyway, on with the how to:
What we’re looking to do is create an intuitive interface by which users can switch between a handful of translations of your site’s content. These are pre-translated pages, NOT the inst-a-matic auto-craptastic robot ones (though, in a pinch, they can be better than nothing – check out Joomlaspan’s Google Translation Module).
NOTE: This “how to” is more of a workaround than a long-term solution, as it’s not the most efficient, nor is it overly dynamic, particularly if you have huge amounts of content.
For this example, lets assume we have a site that requires its content to be in both English and German.
Step 1: Create your content
First things first, create your content. Create a new content item, say… “Clients”, insert the English text and save. Then, create a second content item entitled “Kunden” and insert the German text and save.
Step 2: Create your menu
Next we need to create a menu to allow users to choose between the languages. Go to Joomla’s Menu Manager and create a new menu called “Language – Clients”. ** Each page that requires translation will also require a menu. Starting each menu name with “Language – ” is an easy way to keep them organized.
In the new menu create two menu items:
1. Title: English / Alias: clients / Under Parameters Basic select the “Clients” content item.
2. Title: Deutsch / Alias: clients-de / under Parameters Basic select the “Kunden” content item.
Step 3: Placing the menu
Where you place the language menu will largely depend on your template’s design. For myself, I set up a separate module position in my template’s index.php file and had it display at the top of the page. If editing templates isn’t your thing though, you can simply just add this menu to an already created module position (such as your “right” or “left” sidebars, your footer, whatever).
When you created the new “Language – Clients” menu a new module was created. Head to the Module Manager and pop that sucker open. Now we need to limit the pages this new menu displays on. To do so, simply look under the Menu Assignment properties.
Check the “Select Menu Item(s) from the List” option and choose the menu items (CTRL-click) it should display on. You should see the menu you created with two menu items, English/Deutsch, select both of those, and select any other menu items that link to the “Clients” page (such as if you have it in a main navigation menu).
Next, under the Details properties, make sure you check the Enabled box and set the other preferences to your needs – being sure to select the proper Position for it to display in.
Well, that should about do it. To use this on multiple content items, you simply repeat the process above for each page of content. Using Joomla’s ability to limit which pages modules appear on, you can have all the “Language – ” menus assigned to the same position, but only the appropriate menu will display on the set content items.
As mentioned at the beginning, this is a quick and basic hack for a site that doesn’t have hundreds of pages of content that require translation, but will work quite nicely for a small site with basic corporate information.
You can see where I’ve implemented this system over at a site I’ve just created for a full-service media agency that my company, Dao By Design, has become affiliated with: CultureFish Media.