Mam następujący walidacji w modeluRails Internationalization (I18n) w walidacji modelu: Możliwe czy nie?
validates_inclusion_of :whatever, :in => [true, false], :message => I18n.t('please_select_whatever')
Wydaje się, że tłumaczenie nie działa w trybie produkcyjnym: we wszystkich językach zawsze jest tłumaczenie na język angielski, który pobiera diplayed (prawdopodobnie dlatego, że ustawiony angielski jako domyślny locale w mojej aplikacji ...?).
Zakładam więc, że nie możemy tłumaczyć walidacji w modelach, ponieważ modele są ładowane tylko raz - po uruchomieniu serwera (a następnie zastosowane zostaną domyślne ustawienia narodowe).
Mam rację? Jeśli tak, jak rozwiązałbyś ten problem?
Dzięki za pomoc!
Zawsze zapominam o wartościach domyślnych komunikatów o błędach activerecord (i potrzebuję ich co kilka miesięcy), na szczęście Google pomaga mi znaleźć tę odpowiedź raz za razem! –
=> Lepszym sposobem rozwiązania tego problemu jest odpowiedź @iain poniżej. –
To nie rozwiązuje problemu * dlaczego * Rozwiązanie OPs nie zadziałało: tłumaczenie zostało zinterpretowane, gdy projekt _initialized_, co dzieje się w każdym żądaniu w dev, ale tylko raz podczas bootowania w prod. Aby obsługiwać wiele języków, muszą one być interpretowane w _runtime_, do którego adresowane jest rozwiązanie @ iain. Rozwiązanie TomDogga działa tylko wtedy, gdy możesz użyć tego samego domyślnego tłumaczenia w każdym przypadku, co nie zawsze jest najlepszym UX. – Woahdae