Ruby on rails Rails 3国际化(I8n)区域设置来自域名问题

Ruby on rails Rails 3国际化(I8n)区域设置来自域名问题,ruby-on-rails,internationalization,nginx,setlocale,Ruby On Rails,Internationalization,Nginx,Setlocale,我创建了一个rails 3网站,可以访问whereisdaniel.com和whereisdaniel.ru。网站应提供英文版本,网站应提供俄文版本 在本地,一切正常。然而,在我部署的网站上,起初一切正常,但在访问.ru网站后,尝试切换到.com版本会导致俄语翻译。我唯一能想到的是,我的nginx/乘客配置存在某种问题 我的配置文件如下所示: nginx.conf server { listen 80; server_name whereisdaniel.com whereisdani

我创建了一个rails 3网站,可以访问whereisdaniel.com和whereisdaniel.ru。网站应提供英文版本,网站应提供俄文版本

在本地,一切正常。然而,在我部署的网站上,起初一切正常,但在访问.ru网站后,尝试切换到.com版本会导致俄语翻译。我唯一能想到的是,我的nginx/乘客配置存在某种问题

我的配置文件如下所示:

nginx.conf

server {
  listen 80;
  server_name whereisdaniel.com whereisdaniel.ru;
  root /home/dan/whereisdaniel/public/;
  passenger_enabled on;
}
我的其余代码直接从Rails指南剪切粘贴到这里:

还有一个较小/额外的问题: 我唯一没有从Rails指南中实现的是指南的这一部分,因为我不理解如何:

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

与此相反,我只提供了指向不同站点URL的基本html链接。实际上,如果有人知道的话,我想了解如何/在哪里创建APP_CONFIG常量

在这个链接上的评论解决了我的问题:

在Rails 3.0.4中,似乎有一个bug。以下是一个解决方法:

在应用程序控制器中,过滤器之前的set_locale应如下所示:

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

我现在唯一想知道的是APP_CONFIG变量。

在这个链接上的评论解决了我的问题:

在Rails 3.0.4中,似乎有一个bug。以下是一个解决方法:

在应用程序控制器中,过滤器之前的set_locale应如下所示:

def set_locale
  I18n.locale = I18n.default_locale
  I18n.locale = extract_locale_from_tld
end
我现在唯一想知道的是APP_CONFIG变量