Creating language packs for extensions in Joomla 1.6/1.7
Although Joomla 1.6 supports installing language files for the front end (site) or back end (admin), it has no dedicated way to install language files for extensions (components, plugins, modules) unless they are installed with the extension itself.
Fortunately, Joomla 1.6 supports a powerful way to install an arbitrary set of files called a 'files' installation unit. (See Installation unit for an arbitrary set of files named 'files_test1').
Example Plugin Language Pack
Suppose you have a content plugin named 'alpha' that you want to create a new language pack for language zz-ZZ. Here is what your language pack files in the folder 'alpha_zz_zz_language_pack' might look like:
── alpha_zz_zz_language_pack
├── index.html
├── alpha_zz_zz_language_pack.xml
├── zz-ZZ.plg_content_alpha.ini
├── zz-ZZ.plg_content_alpha.sys.ini
└── language
├── en-GB
│ └── en-GB.files_alpha_zz_zz_language_pack.sys.ini
└── zz-ZZ
└── zz-ZZ.files_alpha_zz_zz_language_pack.sys.ini
where the file 'alpha_zz_zz_language_pack.xml' is the installation manifest file.
The manifest file would look something like this:
<?xml version="1.0" encoding="utf-8"?>
<extension version="1.7" type="file" method="upgrade">
<name>alpha_zz_zz_language_pack</name>
<version>1.6</version>
<creationDate></creationDate>
<author></author>
<authorEmail></authorEmail>
<authorUrl></authorUrl>
<copyright>Copyright (C) 2011 ???. All rights reserved.</copyright>
<license>http://www.gnu.org/licenses/gpl-2.0.html GNU/GPL</license>
<description>ALPHA_ZZ_ZZ_LANGUAGE_PACK</description>
<fileset>
<files target="plugins/content/alpha/language/zz-ZZ">
<filename>index.html</filename>
<filename>zz-ZZ.plg_content_alpha.ini</filename>
<filename>zz-ZZ.plg_content_alpha.sys.ini</filename>
</files>
<files folder="language/en-GB" target="language/en-GB">
<filename>en-GB.files_alpha_zz_zz_language_pack.sys.ini</filename>
</files>
<files folder="language/zz-ZZ" target="language/zz-ZZ">
<filename>zz-ZZ.files_alpha_zz_zz_language_pack.sys.ini</filename>
</files>
</fileset>
</extension>
A few notes and warnings:
- Once this installed, the language pack will be listed in the Extension manager (not the language manager).
- The language files 'zz-ZZ.files_alpha_zz_zz_language_pack.sys.ini' (and its English counterpart) will be put into the top-level (site) language/ folder. It is only needed for displaying the name of this pseudo-language pack in the Extension manager.l
- All of the language files could have been in the top directory, but this example shows how to set up files in folders in the language pack folder using the 'folder=' attribute in the XML <files> tag as shown.
The file 'zz-ZZ.files_alpha_zz_zz_language_pack.sys.ini' might have only one line like this:
FILES_ALPHA_ZZ_ZZ_LANGUAGE_PACK=="Plugin Alpha zz-ZZ Language Pack"