Chcę I18n.translate()
lub I18n.t()
do korzystania z konkretnego locale, ale nie I18n.locale. Nie chcę używać I18n.t(:my_key, locale: :my_locale)
za każdym razem, więc byłoby wspaniale, gdybym mógł nadpisać samą funkcję.Zastąp szyn tłumaczenia pomocnika
Starałem się umieścić go w nowym pomocnikiem:
# my_helper.rb
module MyHelper
def translate(key, options = {})
options[:locale] = MY_LOCALE
I18n.translate key, options
end
alias :t :translate
end
Działa to dobrze dla „twardych” jak t('word')
kluczy, ale nie znaleźliśmy właściwą drogę dla „klawiszy dynamicznych” jak t('.title')
, co powinno użyj ścieżki mojego częściowego, tj. de.users.form.title
.
Dzięki za pomoc!
Myślę, że brakuje wam metody "I18n.with_locale". – phoet
Dziękuję za komentarz. 'I18n.with_locale (MY_LOCALE) {}" to to samo, co 'I18n.t (:, key, locale: MY_LOCALE)'. Miałem nadzieję na rozwiązanie ze standardową funkcją 'I18n.t()' i scentralizowaną definicją ustawień narodowych, których chcę użyć. – Railsana
Nie możesz po prostu ustawić lokalizacji z paramu, z domeny lub czegoś podobnego, jak omówiono tutaj: http://guides.rubyonrails.org/i18n.html#setting-and-passing-the-locale? W ten sposób ustawisz ustawienia regionalne dla każdego żądania, a następnie użyjesz 'I18n.t' po prostu jak normalnie, ale używając ustawienia narodowego dla żądania zamiast domyślnego ustawienia narodowego. – Frost