当我使用默认的 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
我在这里想念的是什么?
除了我在nginx.conf中将应用程序名称或proxy_pass更改为app之外,我对unicorn和nginx的设置几乎都是默认设置。
谁能教我如何让i18n工作?我整天都在堆栈....
请原谅我糟糕的英语技巧......
提前谢谢你。
答案 0 :(得分:1)
尝试在location @app-name { }
或proxy_pass
配置上方的Nginx配置中添加以下行:
proxy_set_header Host $http_host;
如果您的Nginx配置中缺少Rails,则会将proxy_pass
设置作为主机发送。