私のサイトのほとんどは、ロケール (i18n) の下で動作しています。ただし、現在は管理者側で作業しています。そして、これはどのローカルでも機能しません。ローカルの範囲外のすべての URL には、URL の末尾に「?locale=en」が追加されていることに気付きました。
こちらのサイトでご覧いただけます。すべての URL は問題ないようです。ただし、ルートに戻る左上のアイコンに移動すると、そのビットが URL に追加されます。 http://hik-fyp.heroku.com
ルートを特定の言語で表示するためだと思います。ただし、管理セクション (単一言語) になると、どこにでも表示されます。
それは正常ですか?これは、何らかの形でサイトに干渉する可能性がありますか? それを取り除く方法はありますか?しばらくネットで調べましたが、似たようなものは見つかりませんでした。前もって感謝します...
これは ApplicationController からの抜粋です
after_filter :store_location
before_filter :set_locale
def set_locale
logger.debug "* Accept-Language: #{request.env['HTTP_ACCEPT_LANGUAGE']}"
I18n.locale = params[:locale] || extract_locale_from_accept_language_header || I18n.default_locale
logger.debug "* Locale set to '#{I18n.locale}'"
if current_user
current_user.locale = params[:locale]
current_user.save
end
session[:locale] = I18n.locale
end
def default_url_options(options={})
logger.debug "default_url_options is passed options: #{options.inspect}\n"
{ :locale => I18n.locale }
end
def store_location
# store last url as long as it isn't a /users path
session[:previous_url] = request.fullpath unless request.fullpath =~ /\/users/
end
def after_sign_in_path_for(resource)
session[:previous_url] || root_path
end