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

Re: quel nom pour une locale fr_geek : la solution technique



On Fri, Jul 11, 2003 at 02:33:12AM +0200, Martin Quinson wrote:
[...]
> Donc, le script ressemblerait a 
> for n in /usr/share/locale/fr/LC_MESSAGES/* ; do
>   b=`basename $n`
>   msgunfmt $n                          | \
>   msgfilter sed -e 's/cédérom/CD-ROM/' | \
>   msgfmt -o /tmp/$b                   && \
>   sudo mv /tmp/$b $n
> done
> 
> Et pour corriger plusieurs choses d'un coup, faut utiliser l'option -f de
> msgfilter et lui donner un script sed a manger (facile).
> 
> Bon, c'est perfectible. msgconv peut etre necessaire pour eviter les pbs
> d'encodage, mais je suis nul en ca, et a priori, ca devrait pas poser de
> probleme ici. 

Si, comme les mots que tu passes à sed contiennent des accents,
il faut mettre
   msgconv -t $encoding
entre msgunfmt et msgfilter, où $encoding est le codage utilisé sur la
ligne de commande de sed.

[...]
>   s/utilisateur/neuneu/i (c'est pas moi, c'est l'histoire des pingouins)

Et aussi
  s/manchot/pingouin/

> et ainsi de suite. J'ai pas la force de relire toute l'histoire des
> pingouins ce soir, mais si quelqu'un fait une telle liste, je pense que je
> l'installerais, cette locale. Ca serait pas assez et faudrait tout reecrire,
> mais deja, ca serait terrible. Je vous conseille aussi d'essayer le script
> precedent en remplacant "sed -e 'blabla'" par "eleet" (du paquet filters).
> Ca donne par exemple:
> 
> msgid "%s: option %c%s' doesn't allow an argument\n"
> msgstr "%5: l'0pt10n  %c%5  n'4tt3nd p45 d'4rgum3nt\n"
                          ^^ pas terrible

> Ou alors "upside-down":
> 
> msgid "%s: option %c%s' doesn't allow an argument\n"
> msgstr "fuawn6je,p sed puaffe,u  s%)%  uo!fdo,7 :s%\n"

Pas top non plus.

> Soit dit au passage, faut pas priver les geeks belges et autres. fr@geek
> suffi, non ? C'est qu'on a coupe aux schismes nationaux jusqu'ici, alors si
> on pouvait eviter de schismer deux fois d'un coup, ca serait peut etre mieux. 

En fait, il y a 2 choses distinctes : la création éventuelle d'une « locale »,
je pense qu'elle doit alors contenir le « territory code », et le répertoire
des messages. Ce dernier peut effectivement être sous
/usr/share/locale/fr@geek/ et non /usr/share/locale/fr_FR@geek/

Contrairement à ce que j'avais écrit dans un message précédent, la variable
LC_MESSAGES ne semble pas prise en compte pour les programmes utilisant
gettext, il faut redéfinir LANG ou LANGUAGE. La 2e solution est plus simple,
car ne nécessite pas la création d'une locale, il faut juste mettre
les fichiers .mo sous /usr/share/locale/fr@geek/LC_MESSAGES/.
Mais je n'ai jamais compris dans le détail comment se fait le choix de la
langue à afficher, donc je peux me tromper.

Denis



Reply to: