2011-03-13 105 views
1

我創建了一個軌道3的網站,可以在到達whereisdaniel.com和whereisdaniel.ru在.COM網站應該成爲了英文版,並在.RU網站應該提供俄語版本。Rails 3的國際化(I8n)區域從域名問題設置

本地,一切正常。但是,在我部署的網站上,一切工作起初,但在去.ru站點後,嘗試切換到.com版本導致俄語翻譯。我唯一能想到的是,我的nginx /乘客配置存在某種問題。

我的配置文件看起來像這樣:

nginx.conf 

server { 
    listen 80; 
    server_name whereisdaniel.com whereisdaniel.ru; 
    root /home/dan/whereisdaniel/public/; 
    passenger_enabled on; 
} 

我的代碼的其餘部分我切,在這裏直接從Rails的指南貼: http://guides.rubyonrails.org/i18n.html#setting-the-locale-from-the-domain-name

一個更小的/額外的問題: 我沒有從Rails的指南實施的唯一的事情是引導這部分是因爲我不知道如何:

link_to("Deutsch", "#{APP_CONFIG[:deutsch_website_url]}#{request.env['REQUEST_URI']}") 

取而代之的是我只是有基本的HTML鏈接到不同的網站的網址。其實,我想了解如何知道如何/如何創建APP_CONFIG常數。

回答

1

在這個鏈接的評了解決我的問題: Rails: How should Phusion Passenger and I18n.locale behave?

在Rails 3.0.4似乎是一個錯誤。這裏是一個解決辦法:

在應用控制器,過濾器之前的set_locale應如下所示:

def set_locale 
    I18n.locale = I18n.default_locale 
    I18n.locale = extract_locale_from_tld 
end 

我想了解一下現在的唯一的事情就是APP_CONFIG變量。