Joomfish is a localization extension for Joomla, allowing your Joomla site — both frontend and backend — to appear in multiple localizations as desired. Robust and popular, many consider it best of breed for managing and publishing multilingual content in Joomla.
As with any extension, back up your site before installing Joomfish.
1. Install and configure any needed Joomla language packs.
2. Enable MySQLi
If you are using at least PHP 5.0 and MySQL 4.1.3, enabling MySQLi improves performance. This is true whether or not you use Joomfish. At Site – Global Configuration – Server, find “Database Type” in the right column. By default it may be set to mysql; change it to mysqli. Press Save.
On one local installation on Linux, I received the error:
Database Error: Unable to connect to the database: The MySQL adapter “mysqli” is not available.
Installing the php-mysqli package resolved the problem. If you receive a similar error on remote hosting, ask your host for MySQLi support.
INSTALLATION AND CONFIGURATION
1. Install Joomfish
Download the latest stable release of Joomfish and install it at Extensions – Install/Uninstall. Click on “Choose” and select JoomFishxxx.zip. Then click on “Upload File & Install”.
2. Optional: Install Joomfish translations
If translators will want to use Joomfish in a language other than English, download the appropriate Joomfish translations. Although there is an English translation available, it is not needed. Install them at Extensions – Install/Uninstall.
3. Language configuration
To configure the languages for use, go to Components – Joomfish – Content Languages. Mark with a check mark the language(s) you wish to have active. If “Name” is not a natural name, you may change it. Be sure SEF code is the two letter ISO code for each language, e.g. “en” for English. Leave the fallback blank. Press “Apply”.
Press the “Config” button for one of the installed languages and translate the settings. Press “Save”. Repeat for each installed language.
4. Joomfish configuration
In Components – Joomfish – Control Panel, click the “Parameters” button in the upper right corner of the viewport. Enable translation caching and press “Save”.
5. Check your installation
Go to Components – Joomfish – Control Panel and refresh the page to insure you will be seeing current data. Click on the “State” panel in the right column. Insure that directories are writable and extension states are correct (green). If a directory is unwritable, it is usually a problem with Joomla, not Joomfish. See Help – System Info – Directory Permissions and correct if necessary.
6. Verify that static content is multilingual
“Static content” is text that is not directly editable by an administrator, such as “Written by Administrator Saturday, 07 July 2007”. It is opposed to dynamic content, which is text that can be edited by content editors (such as articles) or administrators (such as menus).
The static content of your Joomla frontend should now be multilingual. Check that this works by playing with the language controls that should now appear on the home page.
If you chose to install backend languages, the backend should also be multilingual now. Check that this works by logging out of the backend. Log back in, selecting from the login screen a new language. Peruse the backend.
7. Configure frontend appearance
How the language selection controls appear to the site visitor is configured in Extensions – Module Manager – Site – Language Selection. Some of the available controls are:
- In Menu Assignment, select in which menus you wish the language selection controls to appear.
- In Parameters – Module Parameters – Appearance of Language Selector, set whether you want flags or text, a list or a drop-down.
TODO: Document how to further control the appearance of language selection controls with CSS.
8. Monitor the Joomfish project feed
The translation of dynamic content will be illustrated by the example of translating the first item in the main menu, which in English reads “Home”, into Spanish. Go to Components – Joomfish – Translation. Select the language into which you wish to translate (in this example, Español). Then in “Content elements” select “Menus”. You will see a list of all menus.
In Menu Filter, select “mainmenu” to see only the items in the main menu. Click on the item “Home” to open the translation window for that item. Write your translations in the fields labeled “Translation”. In the case of this menu item, you will want to translate at least “Label: Name”. Be sure to check the “Published” box and press “Apply”.
Check that this works by setting the home page’s language to the target language and ensure that the new translation of the main menu’s displays. Now set the home page’s language back to English. Notice that much English text is preceded by the message “There are no translations available”. This is because you do not yet have an English translation designated, so Joomla is falling back to the (new) Spanish translation.
To designate an English translation, we will copy the existing main menu items to their English translations. Close the translation window with the buttons “Save” or “Cancel”. Go to Components – Joomfish – Manage Translations and select “Copy original to language”. Find the “Menus” content and check the box marked “copy to language”. You will probably want to check all the other boxes, too, to copy all the other content as well. In the “Select Language” drop-down box below the list of content, select “English” and press the “Copy” button.
Now we need to publish the newly copied menus. Go to Components – Joomfish – Translation. In the drop-down box “Languages”, select English. Then in “Content elements” select “Menus”. Select the check box of every item that appears as not published. Pressing the check box at the top of the column will select all items. Press the “Publish” button.
Do the same for other content elements. In the drop-down box “Content elements” select one after another all other options and publish their contents as above. Check your work on the home page.
When adding new dynamic content, always indicate the language. In the right hand column, open “Parameters (Advanced)”. In “Content Language”, select the language.
WHEN INSTALLING A NEW EXTENSION FOR JOOMLA
When selecting a new extension to install, look for one that provides a Joomfish content element plugin. This file provides Joomfish integration for the extension. Content elements are installed at Components – Joomfish – Content Elements – Install.
TIPS AND TRICKS
If a site visitor does not use the language selection controls, he will be served according to the language preferences set in his browser. Keep this in mind while testing; I test in multiple browsers, each with a different language preference set.
If you want to turn off Joomfish temporarily, say for debugging purposes, then in Extensions – Plugin Manager disable the two plugins “System – Jfrouter” and “System – Jfdatabase”.
Joomfish is free software and depends upon voluntary club memberships from users to sustain the project. If you find it useful, please consider joining the club.
Always use the latest stable version. Monitor the Joomfish blog RSS feed to stay abreast of new releases. When there is a new release, follow the upgrade instructions. Typical instructions are to upload the relevant upgrade patch into the Joomla docroot and unzip it (“unzip patch.zip”), overwriting any existing files.
Should you wish to uninstall Joomfish, go to Extensions – Module Manager, select Joomfish, and press Delete.