Язык локализации Rails 3 Internationalisation (I8n) из проблемы доменного имени - PullRequest
1 голос
/ 13 марта 2011

Я создал один сайт 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 на различные URL сайта.На самом деле, я хотел бы понять, как и как / где создать эту константу APP_CONFIG, если кто-нибудь знает.

1 Ответ

1 голос
/ 13 марта 2011

Комментарий по этой ссылке решил мой вопрос: Rails: как должны вести себя Phusion Passenger и I18n.locale?

В Rails 3.0.4, похоже, есть ошибка.Вот обходной путь:

В контроллере приложения set_locale перед фильтром должен выглядеть следующим образом:

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

Единственное, о чем я сейчас удивляюсь, это переменная APP_CONFIG.

...