Traduction, internationalisation, localisation

Bonjour à tous.

Je débute actuellement en rails et je suis en train de me poser la
question de l’internationalisation, vu que rails semble croire que toute
appli web sera écrite par et pour des anglophones.

Passage au français comme langue unique
A ce sujet, j’ai repéré le plugin “localisation_simplified”(1),
extrêmement simple et efficace: Après l’installation, les messages
d’erreurs apparaissent en français, les dates et les monnaies
s’affichent selon la norme française. Il me reste cependant 2
difficultés non résolues par ce plugin:

  • Il n’y a pas de solution pour la traduction du modèle. J’ai une
    tendance naturelle a nommer mes colonnes en anglais, mais j’aimerais
    bien que dans mes vues générées automatiquement, les noms des champs
    apparaissent en français suivant une traduction que j’aurais définis.
    J’en appelle à votre expérience pour me suggérer une solution appropriée
    à ce problème.
  • La méthode validates_numericality_of continue de considérer que le
    point est le seul séparateur décimal possible
    : Si l’utilisateur saisi
    un nombre avec une virgule dans un champ vérifié par cette méthode, il
    sera confronté à l’erreur “n’est pas un nombre”. Avez vous une solution
    simple et élégante pour résoudre ce point?

Internationalisation
Les difficultés du passage au français comme langue unique m’ont amené à
m’intéresser aux plugins d’internationalisation, pour préparer le jour
où mes applis seront des succès mondiaux :wink: . Le plugin qui m’a paru
le plus intéressant est “gettext”(2), notamment parce qu’il est déjà
utilisé dans beaucoup de logiciels libres existants écrit en C, mais
surtout parce qu’il a l’air de bien séparer la tâche des programmeurs de
celles des traducteurs, facilitant ainsi le travail de ces derniers
(avec des logiciels pour les aider).

Je voudrais donc avoir un retour d’expérience de quelqu’un qui a
utilisé le plugin “gettext” en production
, et si possible des réponses
aux trois questions que m’ont soulevé les recherches à son sujet:

1- Dates, monnaies et chiffres.
Dans la page de comparaison des plugins d’internationalisation(3), il
est dit que gettext ne gère pas les dates, monnaies et chiffres
(justement le point fort de localisation simplified). Comment gérer
cette
difficulté?Je pensais que je pourrais peut-être adapter “localisation simplified”
pour qu’il règle automatiquement sa langue pour être la même que celle
utilisée par gettext,* pensez-vous que cette adaptation sera facile?*

2- Traduction des données de la base.
Pour un blog ou un CMS, ou un wiki, on enregistre généralement les
articles dans la base de données. Comment gérer leur traduction (gettext
fonctionne plutôt par fichier de traduction). Faut il faire intervenir
un plugin supplémentaire pour cet aspect, ou bien gérer manuellement le
problème. Si il faut gérer manuellement, existe-t-il des modèle standard
de programmation pour le faire?

3- Performance
Ce plugin semble-t-il ralentir considérablement l’application?

Merci d’avance pour vos réponse

Sébastien.

(1) http://agilewebdevelopment.com/plugins/localization_simplified
(2) http://www.yotabanana.com/hiki/ruby-gettext.html
(3)
http://wiki.rubyonrails.org/rails/pages/InternationalizationComparison

On Nov 8, 2007 1:28 PM, Sébastien Lamy [email protected] wrote:

d’erreurs apparaissent en français, les dates et les monnaies
s’affichent selon la norme française. Il me reste cependant 2
difficultés non résolues par ce plugin:

  • Il n’y a pas de solution pour la traduction du modèle. J’ai une
    tendance naturelle a nommer mes colonnes en anglais, mais j’aimerais
    bien que dans mes vues générées automatiquement, les noms des champs
    apparaissent en français suivant une traduction que j’aurais définis.
    J’en appelle à votre expérience pour me suggérer une solution appropriée
    à ce problème.

Je te conseilles simplement de modifier directement tes vues pour
mettre les noms de colonnes que tu souhaites.

  • La méthode validates_numericality_of continue de considérer que le
    point est le seul séparateur décimal possible
    : Si l’utilisateur saisi
    un nombre avec une virgule dans un champ vérifié par cette méthode, il
    sera confronté à l’erreur “n’est pas un nombre”. Avez vous une solution
    simple et élégante pour résoudre ce point?

Tu peux t’amuser a faire un replace des virgules par des points :slight_smile: et
inversement dans l’autre sens.

2- Traduction des données de la base.
Pour un blog ou un CMS, ou un wiki, on enregistre généralement les
articles dans la base de données. Comment gérer leur traduction (gettext
fonctionne plutôt par fichier de traduction). Faut il faire intervenir
un plugin supplémentaire pour cet aspect, ou bien gérer manuellement le
problème. Si il faut gérer manuellement, existe-t-il des modèle standard
de programmation pour le faire?

Gettext ne doit être utiliser que dans le cas de modification de
donnée static et aucunement des données dynamique. Pour cela utilise
du polymorphisme.


Cyril M.

Salut Sébastien,

As-tu regardé du côté de Globalize ?
http://www.globalize-rails.org/globalize/

Sur Google, tu as pas mal d’articles :
http://www.la57ieme.net/wordpress/index.php/articles/franciser-un-projet-rails-avec-le-plugin-globalize-cest-facile-et-ca-marche/

Pierre

Cyril M. a écrit :

Gettext ne doit être utiliser que dans le cas de modification de
donnée static et aucunement des données dynamique. Pour cela utilise
du polymorphisme.
Merci pour ta réponse.
Je ne connais pas du tout le polymorphisme. Disposes-tu de liens vers de
la documentation expliquant comment utiliser ça pour faire de
l’internationalisation dans rails ?