[13]Make Joomla! information more language aware

Locked
User avatar
akede
Joomla! Ace
Joomla! Ace
Posts: 1258
Joined: Fri Aug 12, 2005 6:15 am
Location: Munich, Germany
Contact:

[13]Make Joomla! information more language aware

Post by akede » Thu Mar 20, 2008 4:52 pm

1. INTRODUCTION
The CMS Joomla! supports many different languages in the frontend and backend applications already. Since Joomla! 1.5 the articles also do have a language parameter which allows to identify the language in which an article is written. However all other information such as section/category descriptions, module content or menu names do not have such a tag. This tag will the improve the possibilities of extensions to sort out language specific content. E.g. a RSS feed extension can present information for different languages or a content list can present the number of articles in one specific language without complex and time intensive database queries over a 'text' type filed.

The other element is the management of languages in general. Those languages are stored in a language file depending on their ISO codes. For references within the database it is hard to link to one of those files as the reference can't be matched to a database identifier.

2. SCOPE
  • Add a new table _languages that stores the meta-information of all language files and relate those information to an database identifier
  • Add a reference column 'langid' to all information tables (very similar to the number of tables the 'alias' column was added for 1.5)
3. TECHNICAL IMPLEMENTATION
3.1 New '_languages' table
The new language table can include all the information currently stored in the XML meta information of the language file. To simplify the language management I suggest to update the table when the language manager (extensions) is opened. Normally it is enough to check the language directory for the files and then update the content of the table. As the table stores only a reference to the file a dialog to modify those values is not required. The Translation Manager extension (http://extensions.joomla.org/component/ ... Itemid,35/) already does this modification of XML files if it shall be implemented.

The Joom!Fish (http://www.joomfish.net) project creates a similar table at the moment. We figured out that for our needs we additionally need a independent name for the language (might be translated) and a flag if the language is 'active' in the sense of the admin want's to allow a user to pick a certain language. This is not a real requirement more a nice to have for core Joomla! functionality as in the core the focus shall be on the reference for information nor on the management of multilingual sites.

3.2 Reference column for information tables
In all tables a new column 'langid' shall be implemented. The column can be "null" and shall refer to an existing language.id in _languages.

Tables affected:

* _banner
* _bannerclient
* _categories
* _contact_details
* _content
* _menu
* _modules
* _newsfeeds
* _polls
* _sections
* _weblinks


Together with adding the column to the tables it is suggest to include the current dropdown "languagelist" from the parameters implementation into the various dialogs as well, to allow the user to select his/her language. This applies to all frontend and backend dialogs in which those information are used.

4. IMPACTS
The impact to the system is relatively small. As this is a new column that is not used yet but the language files already hold those information it is quite easy to add. The primary effort lies in the changes of dialogs to allow the language setting for the end user. Additional testing effort is only needed to verify the correct storing of the values.

The only definition that might be tricky is what happens if a language file is removed and with that a record in the language table is removed too. Are all references to this language been set to 'null' automatically or are they just become outdated?

5. DEPENDENCIES
No direct dependencies to external extensions.
The language meta-file description and importing logic as well as database table depend on each other.

6. REFERENCES
Almost all other existing CMS include such a column in their information holding tables as well as a language table itself.

Public document: http://docs.google.com/Doc?id=dckd75hr_2d34dk4dc
Joom!Fish 2.0 your free multilingual solution for Joomla! 1.5 i - http://www.joomfish.net - follow us on twitter @joomfish
Meet us at J and Beyond, 30.05 - 1.06.10, Wiesbaden, Germany - http://jandbeyond.org

mehdi
Joomla! Explorer
Joomla! Explorer
Posts: 437
Joined: Tue Oct 04, 2005 3:56 pm

Re: [13]Make Joomla! information more language aware

Post by mehdi » Wed May 20, 2009 2:43 am

hi ,

Akede suggested, that many joomla elements stored in database use a language identifier (lang_id) , to precise what is the language used. I suggest a second identifier (translat_id) to inform that two or more elements are related but just in a different language. When publishing article (or else), user should be also able to precise that's it's the translation of an other article, and then joomla will update the translat_id. Or why not a "translate" button for creating article in an other language after selecting an existing article in back end ....

I believe that these two identifiers lang_id & translat_id are basis to handle translation (like joomfish does, for instance) . How translations are handled in front end (after publishing) for visitor could be either done by joomla core, or third party extensions..... I'd just like to see at least the "foundations" for translation or "for true multilingual website" a bit more supported by Joomla core. Perhaps not a fully developed solution, but at least a reliable "base" that can be re-used in long term (after updating joomla, or switching third party extensions).

In comparison, multilingual support is available "out of the box" , by other cms like drupal, or elxis ... (if don't know other examples :D ). I believe Joomla is a bit behind in these areas. That's the reason of this post. I hope I'm not hijacking too much the thread, otherwise sorry.


Locked

Return to “Accepted - Archived”