Mam zdefiniowane przetłumaczone atrybuty i nazwy modeli w pliku tłumaczenia i Modelname.human_attribute_name (...) zwraca poprawnie przetłumaczoną nazwę atrybutu, ale nazwy atrybutów w komunikaty o błędach są nieprzetłumaczone. Co jest potrzebne, aby nazwy atrybutów w komunikatach o błędach były przetłumaczone?Przetłumaczone atrybuty w komunikatach o błędach w Railsach (Rails 2.3.2, I18N)
Odpowiedz
Z Guide na ten temat, trzeba będzie skonfigurować plik lokalizacyjny właściwie ze swoimi nazwami modelu i nazwy atrybutów:
en:
activerecord:
models:
user: Dude
attributes:
user:
login: "Handle"
Ponieważ jest YAML, upewnij się, że wszystkie „wypustki” są w rzeczywistości dwie miękkie przestrzenie. Następnie możesz je uzyskać za pomocą User.human_name
i User.human_attribute_name(:login)
.
Nie wziąłem tego dla ewangelii - mógł istnieć błąd. Testowałem to i działa dobrze. Zrobiłem model o nazwie Model
z atrybutem title
. Oto urywek z mojego pliku fr.yml
w config/locales
:
fr:
activerecord:
models:
model: "Sumfink"
attributes:
model:
title: "Tiltile"
Oto odpowiedni kod Widok:
<h1>New <%= Model.human_name %></h1>
<% form_for(@model) do |f| %>
<%= f.error_messages %>
<%= Model.human_attribute_name("title") %><br />
<%= f.text_field :title %>
<%= f.error_message_on :title %>
...
I zrzut ekranu prawidłowo przetłumaczone wyjścia: http://screencast.com/t/et5FhVe1Gp
Dziękuję bardzo za szczegółową odpowiedź. Próbowałem go z nowym projektem. Użyłem pliku tłumaczenia z istniejącego projektu i dodałem nowy model do przetestowania tłumaczenia, a tłumaczenie działało natychmiast. Nie mam dostępu do oryginalnego pliku tłumaczeniowego, w którym napisy nie były używane do tłumaczenia, ponieważ są w moim miejscu pracy. Przyjrzę się temu w poniedziałek, żeby zobaczyć, co jest innego. Aplikacja z udanym tłumaczeniem działała na systemie Linux, aplikacja działa w systemie Windows. –
Mój plik tłumaczący był poprawny. Wycofałem część nazwy kolumny "_id", ponieważ nie były one wyświetlane w komunikacie o błędzie w widoku. Użyłem "modelu" zamiast "model_id". –
Link do zrzutu ekranu jest uszkodzony. Czy masz jeszcze coś, co możesz dostarczyć? Dziękujemy – mkelley33
Kudos Ian, po prostu chciałem dodać, że aby podświetlić etykietę w przypadku nieudanego sprawdzania poprawności, musisz napisać tak:
<%= f.label "title", Model.human_attribute_name("title") %><br />
Z jakiegoś powodu, pisząc go właśnie lubię:
<%= f.label "title" %><br />
nie wyświetla tłumaczenie.
Jakiej wersji Railsów używasz? Ten błąd etykiety został naprawiony w wersji 2.3.6: https://rails.lighthouseapp.com/projects/8994/tickets/745-form-label-should-use-i18n – giraff
- 1. Łącznie z lokalnymi zmiennymi w komunikatach o błędach Django
- 2. Miesiąc fleksja nazw w Railsach I18n
- 3. form_for komunikaty o błędach w Ruby on Rails
- 4. I18n w Railsach 3 z admin namespace
- 5. Niektóre ciągi nie przetłumaczone w module django i18n
- 6. "Dotknij" updated_at kolumna w Rails 2.3.2
- 7. Co oznaczają jednoliterowe prefiksy w komunikatach o błędach w języku Ruby?
- 8. Jak odkryć atrybuty modelu w Railsach
- 9. Railsy tłumaczą komunikaty o błędach sprawdzania poprawności dla zagnieżdżonych atrybutów i18n
- 10. Jak włączyć błędy tłumaczeń I18n w Railsach w widokach?
- 11. Gdzie są domyślne komunikaty o błędach sprawdzania poprawności w Railsach 3.0?
- 12. Szyny i18n i trasy w javascript
- 13. Komunikat o błędach w webpackach
- 14. błędach instalacji Rails 4.0.0
- 15. I18n przesyłania w Ruby on Rails
- 16. Ruby on Rails I18n interpolation
- 17. Jak korzystać z I18n z kontrolera w Railsach
- 18. Komunikaty o błędach ActiveRecord: tłumaczenie dla pól
- 19. komunikaty o błędach psycopg2
- 20. Ruby on Rails i18n - Chcesz przetłumaczyć niestandardowe komunikaty w modelach
- 21. Jak zastąpić standardowe komunikaty o błędach DataAnnotations
- 22. Wiele komunikatów o błędach językowych w javascript
- 23. Zmiana języka komunikatów o błędach w ASP.NET
- 24. Przekazywanie komunikatów o błędach w PHP
- 25. Komunikaty o błędach Firebase w różnych językach?
- 26. Ponów/ponów komunikaty o błędach w AKKA
- 27. Składnia interpolacji {{key}} w komunikatach I18n jest przestarzała. Proszę użyć% {key} zamiast
- 28. Rails i18n formaty walidacji błąd specyficzny
- 29. Atrybuty zagnieżdżone w Railsach: wymagają co najmniej dwóch rekordów.
- 30. Spinacz w szynach 4 - Atrybuty zabronione o silnych parametrach
Mam podobny problem. Ale w mojej aplikacji tłumaczenie nie działa dla nazw modeli. Prawdopodobnie jest to błąd w kodzie Rails. Jednak nazwy atrybutów są tłumaczone poprawnie. –