Accéder au contenu.
Menu Sympa

fr - Re: [sympa-fr] Sympa 5.0 et choix de langue

Objet : Pour les administrateurs de serveurs de listes utilisant le logiciel Sympa

Archives de la liste

Chronologique Discussions  
  • From: Philippe Chevalier <adresse@cachée>
  • To: Olivier Salaün - CRU <adresse@cachée>
  • Cc: adresse@cachée
  • Subject: Re: [sympa-fr] Sympa 5.0 et choix de langue
  • Date: Mon, 25 Apr 2005 13:40:08 +0200

On Mon, Apr 25, 2005 at 10:50:10AM +0200, Olivier Salaün - CRU wrote:
> >
> Ces problèmes de locales aparaissent lorsqu'aucune des locale (fr_FR,
> en_US, hu ou it) n'est disponible dans le système. Sympa ne peut, a
> priori, pas forcer la liste des langues disponibles ; là est le problème.
>
> Suite au prochain épisode...

Bon,

J'ai mis le nez dans le code de Language.pm et j'y ais passée la
matinée.

J'ai "trouvé" le problème, et la solution, au moins pour FreeBSD.

Ca n'est pas du tout portable, donc je vous laisse le plaisir de vous
triturer les méninges pour rendre ca portable :

Sous FreeBSD, les locales sont dans /usr/share/locale et leur nom est de
la forme :

fr_FR.ISO8859-1 fr_FR.ISO8859-15, répertoires contenant les fichiers
standards LC_COLLATE,LC_CTYPE,LC_MESSAGES,LC_MONETARY,LC_NUMERIC,LC_TIME.

Dans Language.pm de Sympa, il y a une table de correspondance,
langue->locale, ou sont inscrites les correspondances en _DUR_ :

my %lang2locale = ('cz' => 'cs_CZ',
'de' => 'de_DE',
'us' => 'en_US',
'es' => 'es_ES',
'et' => 'et_EE',
'fi' => 'fi_FI',
'fr' => 'fr_FR',
'hu' => 'hu_HU',
'it' => 'it_IT',
'nl' => 'nl_NL',
'pl' => 'pl_PL',
'pt' => 'pt_PT',
'ro' => 'ro_RO',
'cn' => 'zh_CN',
'tw' => 'zh_TW');


Conclusion : fr_FR n'existe pas sous FreeBSD, contrairement a
fr_FR.ISO8859-15.


Il suffit de remplacer les chaines par leur équivalent complet pour que,
miraculeusement, les locales apparaissent dans l'interface web :

my %lang2locale = ('cz' => 'cs_CZ.ISO8859-2',
'de' => 'de_DE.ISO8859-15',
'us' => 'en_US.ISO8859-15',
'es' => 'es_ES.ISO_8859-15',
'et' => 'et_EE.ISO_8859-15',
'fi' => 'fi_FI.ISO8859-15',
'fr' => 'fr_FR.ISO8859-15',
'hu' => 'hu_HU.ISO8859-2',
'it' => 'it_IT.ISO_8859-15',
'nl' => 'nl_NL.ISO_8859-15',
'pl' => 'pl_PL.ISO8859-2',
'pt' => 'pt_PT.ISO8859-15',
'ro' => 'ro_RO.ISO8859-2',
'cn' => 'zh_CN.eucCN',
'tw' => 'zh_TW.Big5');

Pour l'anglais, cela necessite aussi de modifier le "supported_lang"
dans sympa.conf et de mettre "us" en lieu et place de "en_US", au milieu des
autres. Il y a visiblement une confusion pour cette locale et en_US est
le defaut dans Conf.pm.

Autre chose a prendre en compte : la colonne lang_user de la table
user_table est limitée a 10 caractères. La nouvelle locale n'est donc
pas sauvegardée. J'ai fait un ALTER COLUMN (ma base est sous PostGreSQL)
pour la mettre en varchar(20).

Vous pouvez voir le résultat la :

http://wws.dspnet.fr.eu.org/wwsympa/

Et en plus, ca marche (moyennant 1 ou deux bémols)

Toutes les locales sont la. J'ai des problèmes d'affichage avec les
locales non ISO8859-1* (europe de l'est et asie), mais c'est peut
etre du a mon browser qui ne trouve pas les polices.

La locale polonaise est disponible aussi, mais la traduction est
incomplete, les menus sont en anglais et quelques mots par ci par la en
polonais.

Après, la façon de rendre ca portable, je n'en ais aucune idée.

Déjà, la liste de correspondance en dur, c'était pas une bonne idée,
parce qu'il existe plusieurs variantes de locales par langue
(notamment celles avec, et celles sans le signe €)

Pour Solaris, je pense que le problème est le même et que le nom des
locales varie de système en système.

HTH,

K.
--
Kyoko Otonashi's shrine / Le temple de Kyoko Otonashi
My tribute to Maison Ikkoku / Mon hommage a Maison Ikkoku
Visit http://www.kyoko.org/



Archives gérées par MHonArc 2.6.19+.

Haut de le page