Ich habe folgende Validierung in einem Modell:Schienen Internationalisierung (I18n) in Modellvalidierungen: Möglich oder nicht?
validates_inclusion_of :whatever, :in => [true, false], :message => I18n.t('please_select_whatever')
Es scheint, dass die Übersetzung nicht im Produktionsmodus funktioniert: in allen Sprachen ist es immer die Englisch-Übersetzung, die (wahrscheinlich diplayed wird, weil ich als Standard-Englisch eingestellt Locale in meiner App ...?).
Also ich nehme an, dass wir Validierungen in Modellen nicht übersetzen können, weil Modelle nur einmal geladen werden - wenn der Server gestartet wird (und dann das Standardgebietsschema angewendet wird).
Bin ich richtig? Wenn ja, wie würden Sie dieses Problem lösen?
Danke für Ihre Hilfe!
Ich vergesse immer die Standardeinstellungen für die ActiveRecord Fehlermeldungen (und ich brauche sie alle paar Monate oder so), glücklicherweise hilft Google mir, diese Antwort immer wieder zu finden! –
=> Der beste Weg, dieses Problem anzugehen, ist die Antwort von @iain unten. –
Dies adressiert nicht * warum * OPs Lösung hat nicht funktioniert: Die Übersetzung wurde interpretiert, wenn das Projekt _initialized_, die jede Anfrage in Dev passiert, aber nur einmal beim Start in prod. Um mehrere Sprachen zu unterstützen, müssen sie nach _runtime_ interpretiert werden, was die @ iain-Lösung adressiert. TomDoggs Lösung funktioniert nur, wenn Sie in jedem Fall die gleiche Standardübersetzung verwenden können, was nicht immer die beste UX ist. – Woahdae