Multi language site advice

lcollong

FabriKant d'applications web
Hi,

Digging in the forum, site and wiki, I found useful informations on how to setup a multilanguage site. In my case, I should say a fabrik base web application with several lists, forms and hundreds of elements...

Is there something new in Joomla and/or Fabrik I should take in account before starting ? Something that may be included in the next version of Fabrik ?

Is there some one with a recent experience of driving such a project whom may give some feedbacks/advices ?

Thanks
 
There are indeed several routes to choose from when it come to multilingual sites and Fabrik.
It's difficult to give a definite advice because it all boils down to what you try to do and how many languages there are.
However, usually the best solution is to use language overrides for everything in Fabrik (labels, intros, validations, buttons,...). It's a lot of work at the beginning (all mulitilingual sites are a lot of work), but adding a new language later is easy.
The main drawback is that the Joomla language override manager is very user unfriendly.
 
The main drawback is that the Joomla language override manager is very user unfriendly.
Maybe we could use Fabrik to make it more friendly ! :)

Thanks for answering. We are using a referential table for most of the dropdown/checkbox/radio for which we'll add a language column. For the reminding items, I'll consider your route.
 
Maybe we could use Fabrik to make it more friendly !

Unfortunately these data are in .ini files and not in a database table, so I don't think Fabrik can help.

We are using a referential table for most of the dropdown/checkbox/radio

You mean a databasejoin?
That's true, I use that too. In what I think you call referential table, I have columns for each languages with names like "mydata_fr_FR", "mydata_en_GB",...
In the databasejoin element, I use the "Concat label" window with "mydata_{lang}" as data. Fabrik will replace {lang} by the correct langage tag.
 
Good point for the "referential table" (dictionnaire). Thanks.

I did not yet investigate about Joomla language override. I htought that it was DB driven as there is a so-called table....
 
I've done some tests. It's going smoothly. It makes the whole thing "complex" but it works nicely.

I did not understand your setup regarding DBjoin. I did not use language override for this one. I've used an additional column to store the language. Then, I have added as much lines as needed in my "referential" table and in the DBjoin elt itself I have added a "WHERE language='{lang'} clause. It works well as you can edit the form using the right choice in the current language. However when you display the list (or detail view) it is (obviously !) rendered with the initial choice whatever language your setup is.
Is your solution allow you to render the stored DBjoin element in the choosen language in the list view ?

Regarding the translations (I have 3 languages), I think I will setup a Fabrik table to manage them (with filters, inlineedit and some others Fabrik's goodies). Then I'll use some php plugin to generate the whole override.ini files at a time. I'll think about it...
 
I use not columns for each language but a language column. Usually it's a dbjoin pointing to jos_language table's 'sef' column. If some data is not language depending but another is, then multiple tables with join.
Example - an event data.
One list contains
1. main event table - its pk value is an event_id in joined data
2. joined child table with such non-language data like start_date, start_time, end_date, end_time, location etc and event_id - repeated
3. joined child table with multilingual data - columns like language, title, description, event_id - repeated
Prefilter is set where third table language='{lang}'

If any element is databasejoin or cdd that will need label data depending on langauge then it use 2 tables:
1. main data that may even have only pk column
2. multilingual labels related to main data - with pk, main_id label, language cols
Then dbjoin element points to main table (value column is its pk, usually id) and in "or concat label" I write (select label from related_table where main_id = {thistable}.id and language='{lang}')

Ah, yes, and troester already pointed to the tutorial how to make multilingual element labels :)
 
Thanks to both of you. I've seen the one Troester pointed but these kind of solutions add a significant level of complexity. Jaanus solutions sounds good but also with a pretty complex setup (as my base app has already several lists, joins, DBjoins and cdd elts, etc...) I've finally understood what Jean-Fran?ois meant. I'll make some others tests with all theses advices, trying to find my way among all these routes !
 
Language override is working very well when using standards DD/checkbox/Radio elts. The content of table is alway the value item which is fine where as the list rendering and details one show the right translation... Excellent !

Wouldn't be possible that the label part of the DBjoin/CDD elts act the same ?

Also, I've noticed that the {lang} give back strings like "fr_FR" or "en_GB" (underscore) where as the J! tag is "fr-FR" or "en-GB" (dash). It does not allow to reference the J! language table in a DBjoin or prefilter. Is there any "{lang_raw}" or "{lang_tag} placeholder ?
 
I don't know of other {lang} placeholders.
The reason it uses underscores is because it is (usually) used to access the columns names in a table and you can't use a dash in MySQL column name.
 
When I use multilang filter (module with different flags) then if the url contains query string lang=en (or lang=fr...) or you use sef and your url is ... /en/whatever or ... /fr/whatever then {lang} should return en (or fr) . I don't remember yet if there were settings how the lang name in url should look - fr or fr_FR
 
We are in need of some funding.
More details.

Thank you.

Members online

No members online now.
Back
Top