У меня есть приложение Rails (3.2.12), и в настоящее время я запускаю интернационализацию в приложении ('en', 'es', 'it', 'de', 'fr').
Интернационализация работает в приложении, за исключением случаев, когда я выхожу из приложения и попадаю на целевую страницу. Так, например, целевые страницы:
http://localhost:3000/?locale=en
http://localhost:3000/?locale=es
http://localhost:3000/?locale=it
etc...
все по умолчанию для испанского перевода 'es'. Когда я проверяю языковой стандарт, установленный для каждой из вышеперечисленных страниц, я обнаруживаю, что языковой стандарт установлен правильно. Таким образом, в основном, скажем, для английского языка «en» он показывает испанский перевод.
Я также проверил файлы YAML, и они в порядке.
Наиболее близким соответствием SO для этой проблемы является этот вопрос: Смешанные локали в Rails i18n
Я пробовал решения в этом ответе SO, но они, похоже, не работают для меня.
Вот некоторые из соответствующих кодов, связанных с интернационализацией.
Контроллер приложений
class ApplicationController < ActionController::Base
protect_from_forgery
before_filter :set_locale
private
def set_locale
I18n.locale = params[:locale] || I18n.default_locale
#default_url_options[:locale] = params[:locale]
#I18n.locale = params[:locale] || 'en'
end
def default_url_options
{ :locale => I18n.locale }
end
end
Application.rb
config.i18n.default_locale = :en
config.i18n.available_locales = ["en", "it", "de", "es", "fr"]
I18n.config.enforce_available_locales = true
Кроме того, мое приложение использует Devise и Active_admin.
Любая идея относительно того, что я могу делать неправильно здесь?