1


デフォルトのWEBrickサーバー を使用してアプリを実行し、サブドメインからロケールを設定すると、i18nは「en」と「ja」に対して完全に機能します。
ただし、NginxとUnicornを使用してアプリを実行すると、i18nはWEBrickのように機能しません。

サブドメインからロケールを設定するために、以下のコードを記述します。

 def set_locale                                          
    I18n.locale = params[:locale] || I18n.default_locale  
     if request.host.starts_with? "en."                    
      I18n.locale = "en"                                  
     else                                                  
      I18n.locale = "ja"                                  
     end                                                   
 end


ここで何が欠けていますか?
unicornとnginxの設定は、nginx.confでアプリ名またはproxy_passをappに変更したことを除いて、ほとんどデフォルトです。
誰かがi18nを機能させる方法を教えてもらえますか?私は一日中スタックしています....
私の貧弱な英語スキルを許してください...
よろしくお願いします。

4

1 に答える 1

1

location @app-name { }構成内または構成の上にあるNginx構成に次の行を追加してみてくださいproxy_pass

proxy_set_header Host $http_host;

これがNginx構成にない場合、Railsはproxy_passホストとして設定を送信されます。

于 2013-03-10T11:07:05.290 に答える