2011-03-13 77 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变量。