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 回答