2013-03-10 34 views
1


當我運行使用默認的我的應用程序的WEBrick服務器,並從子域區域設置,國際化功能完美的作品爲「en」和「JA」。
但是,當我使用Nginx和Unicorn來運行我的應用程序時,i18n不像在WEBrick中那樣工作。Rails的國際化,如果我使用麒麟和Nginx的作爲應用服務器不工作

我寫下面的代碼從子域設置語言環境;

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到應用程序。
任何人都可以請教我如何使國際化工作?我整天堆棧....
請原諒我可憐的英語技能...
先謝謝您。

+0

看看你的'application.rb'文件,你會發現locale的一些設置,比如'config.i18n.default_locale =:en'。 – 2013-03-10 10:37:35

回答

1

嘗試添加下面一行到你的Nginx配置您的location @app-name { }內部或上面的proxy_pass配置:

proxy_set_header Host $http_host; 

Rails會被髮送proxy_pass設置爲主機,如果從你的Nginx配置此失蹤。

+0

非常感謝您的回答,它現在完美運行!謝謝! – ryug 2013-03-16 02:28:13