dolibarr-dev
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

[Dolibarr-dev] Dolibarr multi-langues


From: Eldy
Subject: [Dolibarr-dev] Dolibarr multi-langues
Date: Sun, 11 Jul 2004 19:30:01 +0200
User-agent: Mozilla Thunderbird 0.7 (Windows/20040616)

Dolibarr multi-langues

J'ai commencé le système de traduction dolibarr en autres langues. Avant d'aller plus loin, j'aimerais qu'on statut sur le procédé.

Il y avait 3 solutions pour gérer les langues:

- Solution 1: Utilisation de gettext. Fonction incluse dans php mais : Pas en standard, ne fonctionne pas toujours et même très mal sur windows, est surtout oriénté 1 fichier de traduction par appli donc destiné à des petites applis textes en général. Le fichier de traduction doit etre du type /usr/share/locale/LC_MESSAGE_fr/monfichier.mo, qui n'est pas texte mais binaire, ce qui rend la maintenance peu pratique. Pour ces raisons j'ai exclus le principe de gettext pas génial pour une appli web

- Solution 2: Celle en vigueur actuellement. Une classe de traduction charge le fichier de traduction selon la langue choisit dans la configuration IHM. La traduction est prise par rapport au texte en français. Dans une page on a $lang->trans("Ma chaine a traduire") Avantage, pas de fichier français a maintenir, inconvénient les correspondances des autres langues se font par rapport à un texte en français en dur dans le code et reporté dans le fichiers des autres langues. Si on change le texte en francais, il faut changer les fichiers de traduction.

- Solution 3: Et j'hésite à partir sur celle la en remplacement de la 2, on utilise la meme classe mais au lieu de mettre en paramètres à la methode trans la chaine en français ("Ma chaine a traduire") au sein des pages, on mettrait cette meme methode mais avec un code texte par exemple $lang->trans("MYSTRING1"). On aurait alors dans le fichier anglais la correspondance de
MYSTRING1 <-> Chaine en anglais
et dans le fichier francais
MYSTRING1 <-> Chaine en francais

L'inconvénient est qu'il faut compléter le fichier francais en meme temps que les autres au fur et a mesure que l'on remplace le chaine en dur dans le pages php par la methode de traduction trans("CHAINEGENERIQUE"), mais toute traduction meme français peut évoluer sans impact sur le code ni sur les autres langues.

Cette solution 3 a ma préférence car elle est plus propre. La question est, si on part sur la 3, faut-il mettre des codes génériques aux chaines à traduire qui sont des termes anglais (exemple "CONFIRMDELETE") ou en francais (exemple "CONFIRMATIONSUPPR").


--
Laurent Destailleur.
---------------------------------------------------------------
EMail: address@hidden
AWStats : http://awstats.sourceforge.net
AWBot : http://awbot.sourceforge.net
CVSChangeLogBuilder : http://cvschangelogb.sourceforge.net





reply via email to

[Prev in Thread] Current Thread [Next in Thread]