1

Rails アプリをいくつかの国向けにローカライズしようとしています。AirBnBのように実装したい。ロケールベースのサブドメインと www サブドメイン。

www.myapp.com
jp.myapp.com
kr.myapp.com

最初に、ユーザーはロケール サブドメイン サイトまたは www サブドメイン サイトに入ります。ユーザーがローカライズされたページに入る場合、または www サブドメイン ページで言語を設定する場合は、cookie パラメータ [:locale] を設定します。

AirBnB は開発に Ruby on Rails を使用していますが、多くのサブドメインをどのように操作しているのでしょうか? ロケールごとに複数のアプリがありますか、それとも 1 つのアプリだけですか? これを Heroku に実装できますか?

この RailsCasts Episode http://railscasts.com/episodes/123-subdomains-revised?view=asciicastを確認しましたが、パッセンジャーを使用しているため、このソリューションを Heroku で使用できるかどうかは疑問です。

4

1 に答える 1

3

Heroku で完全に実現可能です。アプリケーションが *.myapp.com で利用できるようにワイルドカード ドメインを使用し、サブドメインに基づいて言語を設定します。Ruby on Rails ガイドには、ここにセクションがあります。要約すると、(application_controller.rb で)次のようにする必要があります。

before_filter :set_locale

def set_locale
  I18n.locale = extract_locale_from_subdomain || I18n.default_locale
end

# Get locale code from request subdomain (like http://it.lvh.me:3000)
# lvh.me is a free service which maps ANY subdomain to 127.0.0.1 so
# en.lvh.me, it.lvh.me etc would all redirect to 127.0.0.1
def extract_locale_from_subdomain
  parsed_locale = request.subdomains.first
  I18n.available_locales.include?(parsed_locale.to_sym) ? parsed_locale : nil
end
于 2012-08-08T07:58:19.133 に答える