Internationalisation et AR::Errors#full_messages

Bonjour,

L’idée de ActiveRecord::Errors#full_messages à savoir :

  • d’avoir des messages d’erreur générique sans sujet (ex : “is
    invalid”)
  • et de préfixer ce message d’erreur avec le nom de l’attribut en
    question (avec le human_attribute_name)
    est pas mal du tout, mais surtout pour l’anglais.

En français par exemple avec l’accord (ex : “La date” " est
incorrecte") c’est moi simple.

Du coup pour l’instant je mets des messages customisés partout qui
contiennent le sujet de l’erreur.
Mais c’est un peu dommage.
Il me semble avoir vu une solution qui consistait à mettre un signe
dans le début du message d’erreur (’^’ il me semble), pour indiquer
qu’on ne veut pas du sujet pour ce message
là.
Je ne retrouve plus cette fonctionnalité, ça n’a pas l’air d’être dans
Rails, ni dans Globalite que j’utilise pour l’internationalisation.
Bref, ça dit quelque chose à quelqu’un ?

Ou bien existe-t-il un meilleur mécanisme d’internationalisation des
erreurs ?

Le 3 juillet 2008 18:25, Arthur Pétry a écrit :

Mais c’est un peu dommage.
Il me semble avoir vu une solution qui consistait à mettre un signe
dans le début du message d’erreur (‘^’ il me semble), pour indiquer
qu’on ne veut pas du sujet pour ce message là.

Je ne retrouve plus cette fonctionnalité, ça n’a pas l’air d’être dans
Rails, ni dans Globalite que j’utilise pour l’internationalisation.
Bref, ça dit quelque chose à quelqu’un ?

Tu cherches ça ?

Redefine the ActiveRecord::Errors::full_messages method:

Returns all the full error messages in an array. ‘Base’ messages

are handled as usual.

Non-base messages are prefixed with the attribute name as usual

UNLESS they begin with ‘^’

in which case the attribute name is omitted.

E.g. validates_acceptance_of :accepted_terms, :message => '^Please

accept the terms of service’

C’est extrait des sources de Globalite :stuck_out_tongue:

– Jean-François.


http://twitter.com/underflow_

Le 3 juil. 08 à 19:16, Jean-François Trân a écrit :

Bref, ça dit quelque chose à quelqu’un ?
accept the terms of service’

C’est extrait des sources de Globalite :stuck_out_tongue:

Effectivement, je cherchais ça, je suis déçu, je commençais à croire
que je l’avais inventé :wink:

En fait mes sources de globalite étaient pas à jour tout simplement.

Par contre, il y a toujours ça :
load_localization! if defined? RAILS_ENV && RAILS_ENV == ‘development’

Qu’est pas très sympa pour les serveurs en production…

Merci Jean-François !

En fait, je viens juste d’appliqué le patch, je pense faire une
release d’ici peu si j’ai le temps.
Désolé de ne pas avoir été plus rapide.

-Matt

je vais m’occuper load_localization! if defined? RAILS_ENV &&
RAILS_ENV == ‘development’ tres bientot, demain/aujourd’hui c’est
férié ici dc je vais regarder ca de plus pres.

Il y a t’il des volontaires pour maintenir globalite, j’ai beaucoup de
mal a gerer tous mes projets et je passe le reste de mon temps sur
Merb.

-Matt

On 4 juil. 08, at 10:50, Matt Aimonetti wrote:

En fait, je viens juste d’appliqué le patch, je pense faire une
release d’ici peu si j’ai le temps.
Désolé de ne pas avoir été plus rapide.

Merci beaucoup Matt !

On 4 juil. 08, at 10:44, Matt Aimonetti wrote:

Il y a t’il des volontaires pour maintenir globalite, j’ai beaucoup de
mal a gerer tous mes projets et je passe le reste de mon temps sur
Merb

Visiblement, Rails va gérer l’internationalisation dans Rails 2.2 :

http://www.artweb-design.de/2008/7/18/the-ruby-on-rails-i18n-core-api

J’ai l’impression qu’en gros il n’y aura plus besoin de globalite
(enfin à vérifier…)

Arthur Pétry a écrit :

Visiblement, Rails va gérer l’internationalisation dans Rails 2.2 :

http://www.artweb-design.de/2008/7/18/the-ruby-on-rails-i18n-core-api

J’ai l’impression qu’en gros il n’y aura plus besoin de globalite
(enfin à vérifier…)

Perso j’ai compris que Rails allait disposer d’une API en interne pour
gérer la localisation.

Au lieu de proposer une solution tout faite il faudra passer par un
plugin
qui implémente cette API.

Les plugins de localisation ne sont donc pas morts.

Après j’ai peut être mal compris.


Martin C.
http://www.noremember.org | http://www.synbioz.com

Au lieu de proposer une solution tout faite il faudra passer par un plugin
qui implémente cette API.

Les plugins de localisation ne sont donc pas morts.

Tout a fait, on a basé beaucoup de l’API autour de Globalite mais ca
reste une API qui laisse la place aux plugins afin de regler des
problemes different.

-Matt