Проблемы с использованием драгоценного камня i18n с кнопками формы - PullRequest
0 голосов
/ 05 января 2012

Я использую Ruby on Rails 3.1, и я хотел бы правильно обрабатывать интернационализации отправки форм (я использую по умолчанию i18n gem ), связанные с кнопками в файлах представления. Проблема в том, что в моих файлах просмотра у меня есть код, подобный следующему

<%= form_tag ...%>
  ...
  <%= submit_tag( "Send", :id => "css_id", :class => 'css_class' ) %>
<% end %>

и когда я отправляю форму (отправка AJAX), он отправляет HTTP-запрос, например, к пути /users/1?en=en, даже если текущий язык de (обратите внимание на часть en=en).

Для обработки интернационализации в моем файле app/controller/application_controller.rb я использую следующий код:

class ApplicationController < ActionController::Base
  before_filter :set_i18n_locale_from_params

  def set_i18n_locale_from_params
    if params[:locale]
      if I18n.available_locales.include?(params[:locale].to_sym)
        I18n.locale = params[:locale]
      else
        flash.now[:notice] = "'#{params[:locale]}' translation not available"
        logger.error flash.now[:notice]
      end
    end
  end

  def default_url_options
    { locale => I18n.locale }
  end
end

В моем файле config/initializers/i18n.rb есть:

#encoding: utf-8
I18n.default_locale = :en

LANGUAGES = [
  ['English',  'en'],
  ['Deutsch', 'de']
]

Как решить проблему? Должен ли default_url_options правильно обрабатывать ссылки, связанные с кнопками?

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...