Ich mag I18n.translate()
oder I18n.t()
einen bestimmten locale, verwenden, aber nicht I18n.locale. Ich möchte nicht I18n.t(:my_key, locale: :my_locale)
jedes Mal verwenden, so wäre es toll, wenn ich die Funktion selbst überschreiben könnte.Aufschalten Schienen Übersetzungen Helfer
Ich versuchte es in einem neuen Helfer zu setzen:
# my_helper.rb
module MyHelper
def translate(key, options = {})
options[:locale] = MY_LOCALE
I18n.translate key, options
end
alias :t :translate
end
Dies funktioniert gut für „Hardkeys“ wie t('word')
, aber den richtigen Weg für „dynamischen Schlüssel“ wie t('.title')
nicht, zu finden, sollte benutze den Pfad meiner partiellen, dh de.users.form.title
.
Danke für jede Hilfe!
Ich denke, Sie vermissen die 'I18n.with_locale' Methode – phoet
Vielen Dank für Ihren Kommentar. 'I18n.with_locale (MY_LOCALE) {}' wäre dasselbe wie 'I18n.t (: key, locale: MY_LOCALE)' '. Ich hoffte auf eine Lösung mit der Standardfunktion 'I18n.t()' und einer zentralisierten Definition des Gebietsschemas, das ich verwenden möchte. – Railsana
Können Sie nicht einfach das Gebietsschema von einem Parameter, von einer Domäne oder etwas ähnlichem setzen, wie hier beschrieben: http://guides.rubyonrails.org/i18n.html#setting-and-passing-the-locale? Auf diese Weise würden Sie das Gebietsschema pro Anfrage festlegen und dann könnten Sie "I18n.t" genauso wie normal verwenden, aber das für die Anfrage festgelegte Gebietsschema anstelle des Standardgebietsschema verwenden. – Frost