je la validation suivante dans un modèle:Rails Internationalisation (I18n) dans les validations de modèles: Possible ou non?
validates_inclusion_of :whatever, :in => [true, false], :message => I18n.t('please_select_whatever')
Il semble que la traduction ne fonctionne pas en mode de production: dans toutes les langues, il est toujours la traduction anglaise qui obtient diplayed (probablement parce que je mets l'anglais comme défaut paramètres régionaux dans mon application ...?). Donc, je suppose que nous ne pouvons pas traduire les validations dans les modèles, car les modèles ne sont chargés qu'une seule fois - lorsque le serveur est démarré (et ensuite, les paramètres régionaux par défaut seront appliqués).
Ai-je raison? Si oui, comment résoudriez-vous ce problème?
Merci pour votre aide!
J'oublie toujours les valeurs par défaut pour les messages d'erreur activerecord (et j'en ai besoin tous les quelques mois environ), heureusement Google m'aide à trouver cette réponse encore et encore! –
=> La meilleure façon d'aborder ce problème est la réponse de @iain ci-dessous. –
Cela n'aborde pas * pourquoi * OPs solution ne fonctionne pas: la traduction a été interprétée lorsque le projet _initialized_, qui se produit chaque demande en dev, mais seulement une fois au démarrage dans prod. Pour prendre en charge plusieurs langues, elles doivent être interprétées à _runtime_, à laquelle la solution de @ iain s'adresse. La solution de TomDogg ne fonctionne que si vous pouvez utiliser la même traduction par défaut dans tous les cas, ce qui n'est pas toujours le meilleur UX. – Woahdae