2016-08-26 3 views
0

私は英語でロケールを設定すると、すべてが正常ですが、私がクリックしたときにどのようにしてレールアプリのロケールを「保持」できますか?

(フランス語がデフォルトである)私はレール5を使用して、レールのウェブサイトを作成し、私は英語でフランス語のウェブサイトを翻訳する可能性を追加しましたリンク上で、ウェブサイトはフランス語に戻り、ユーザーは再びウェブサイトを翻訳する必要があります

ユーザーが進むページを通してロケールを維持する方法はありますか?

は、事前にありがとう

EDIT私はあなたが他のどのルートにルートのparamsを経由して、現在のロケールを渡すことができ、私のapplication_controller.rb

class ApplicationController < ActionController::Base 
    protect_from_forgery with: :exception 
    before_filter :set_locale 

    def set_admin_locale 
    I18n.locale = :fr 
    end 

    def default_url_options 
    { locale: I18n.locale } 
    end 

    private 
    def set_locale 
    I18n.locale = params[:locale] || I18n.default_locale 
    Rails.application.routes.default_url_options[:locale]= I18n.locale 
    end 
end 

答えて

0

を追加

link_to 'Posts', posts_path(locale: params[:locale]) 

それからca urlリクエストを尋ねるコントローラからのリダイレクトコールでも同じことをしてください。

http://guides.rubyonrails.org/i18n.htmlは国際化

+0

「バイオグラフィー」に向かいたいとします。リンクは、「%% link_to 'Biography」、「/ biography」、ロケール:params [:locale] 'のようになりますか? – Jaeger

+0

2番目のparamは、 'url_for 'と同じ形式のハッシュを受け入れます。ここのドキュメントは、私よりも優れた例を示しています:https://www.google.ca/url?sa=t&rct=j&q=&esrc=s&source=web&cd=2&cad=rja&uact=8&ved=0ahUKEwiE54jdi97OAhXErB4KHTs1A6MQFgglMAE&url=http%3A%2F%2Fapidock %2Frails%2Factioncontroller%2Fbase%2Furl_for&usg = AFQjCNGyIUdeGPANKXlQrIuAFuzNnKbu5g&sig2 = 4QlMg3BdzaBZf_jzAC2NOA – agmcleod

1

を設定する代わりに、あなたがdefault_url_optionsを使用することができますposts_path(locale: params[:locale])を使用して、アプリケーション全体の混乱のために良いの参照です。あなたはそれが現在のロケールURLクエリ文字列に(現在のリクエストで使用されるロケール)を添付するURLヘルパーとURLを生成するたびに、これは何

class ApplicationController < ActionController::Base 
    def default_url_options 
    { locale: I18n.locale } 
    end 
end 

です。

ユーザーが/users?locale=seを要求し、レンダリングされたビューにlink_to(@user.name, @user)が含まれている場合は、パスは/users/1?locale=seになります。

+0

これを私の 'application_controller.rb'に貼り付けましたが、何も変更されませんでした。 – Jaeger

+0

サーバーを再起動してください。キャッシュの問題になる可能性があります – max

+0

時間がかかりましたので、サーバーを再起動して別のコンピュータで試しましたが、どちらの場合でも動作しませんでした。私の質問を編集して、私のapplication_controller.rbを表示します – Jaeger

関連する問題