Wie zu verwenden Rails I18n.t zum übersetzen einer ActiveRecord-Attribut?
Versucht, meine aktive Datensatz übersetzungen in config/locales/de.yml auch in meine Ansichten. Ich dachte, ich bin clever mit diesem:
de:
activerecord:
attributes:
user:
login: "Benutzerkennung"
comment: "Bemerkungen"
Und in meinen Augen ist diese:
<%= label_tag :login, t('activerecord.attributes.user.login') %>
Aber statt der übersetzung Wert ("Benutzerkennung") bin ich immer die berühmt-berüchtigten
"translation missing: de, activerecord, Attribute, Benutzer-login"
Wer hat diese arbeiten (die nicht mit dem label translation-plugin (ich bin vorsichtig mit möglichen Nebenwirkungen) oder "Benutzer".humanize_attribute_name)? Was bin ich? (es funktioniert auch wenn ich "activerecord1" oder etwas anderes als activerecord, also mein setup scheint gut zu sein)
Dank!
Du musst angemeldet sein, um einen Kommentar abzugeben.
Ok, mein Fehler, es funktioniert Prima. Ich fiel in die YML formatieren trap 🙁
Hilfe beim Debuggen auf dem Weg, verwenden Sie "script/console" und die folgenden Anweisungen:
- I18n.Gebietsschema --> sollte die Ausgabe der locale, die Sie betrachten wollen
- I18n.t('activerecord.Attribute') --> sollten geben Sie alle Schlüssel/Wert-Paare für Ihre übersetzung, wenn nicht, Sie machte eine Formatierung Fehler in der YML-Datei oder es konnte nicht gefunden werden
Und btw - das plugin funktioniert ganz gut http://github.com/iain/i18n_label/
wenn Sie nicht wie das Ergebnis ".human_name" (die das plugin verwendet), nur fallen zurück an I18n.t('dein key')
Andere Methode:
Sollten Sie ein upgrade Rails gem zu v2.3.11 (ich habe versucht, 2.3.9, aber jetzt Tage ist es nicht verfügbar, so schlage ich vor, Sie 2.3.11)!
Finden Sie diese Themen hier dokumentiert: Rails 2.3.9 Release notes