我创建了一个rails 3网站,可以通过whereisdaniel.com和whereisdaniel.ru访问.com的网站应该提供英文版本,而.ru的网站应该提供俄语版本。
在本地,一切正常。但是,在我部署的网站上,一切正常,但在转到.ru网站后,尝试切换到.com版本会导致俄语翻译。我唯一能想到的是我的nginx / passenger配置存在某种问题。
我的配置文件如下所示:
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常量。
答案 0 :(得分: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变量。