【问题标题】:Rails 3 Internationalization (I8n) locale set from domain name problem从域名问题设置的 Rails 3 国际化(I8n)语言环境
【发布时间】:2011-03-14 04:05:05
【问题描述】:

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

在本地,一切正常。 但是,在我部署的网站上,一开始一切正常,但在转到 .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']}")

而不是这个,我只有指向不同站点 url 的基本 html 链接。实际上,如果有人知道,我想了解如何/在何处创建该 APP_CONFIG 常量。

【问题讨论】:

    标签: ruby-on-rails internationalization nginx setlocale


    【解决方案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 变量。

    【讨论】:

      猜你喜欢
      • 2013-12-02
      • 1970-01-01
      • 1970-01-01
      • 2013-05-24
      • 1970-01-01
      • 2013-11-25
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多