Ryan Bates railscasts I18n Internationalizationをフォローしていて、問題や質問にぶつかっています。
次のように、リンクに言語を設定しようとしています。
http://localhost:3000/en/site/services (英語)
と
http://localhost:3000/es/site/services (スペイン語)
これをルートファイルで定義しています:
ルート.rb
scope ":locale" do
get "site/home"
get "site/about_us"
get "site/faq"
get "site/discounts"
get "site/services"
get "site/contact_us"
get "site/admin"
get "site/posts"
get "categories/new_subcategory"
get "categories/edit_subcategory"
end
そして、私はアプリケーションコントローラに持っています
before_filter :set_locale
private
def set_locale
I18n.locale = params[:locale] if params[:locale].present?
end
def default_url_options(options = {})
{locale: I18n.locale}
end
そして私のviews/layouts/application.html.erbで
<%= link_to_unless_current "English", locale: "en" %> |
<%= link_to_unless_current "Spanish", locale: "es" %>
今、rake ルートを実行しようとしたり、取得した URL に移動しようとしたりするたびに
C:\www\project>rake routes
rake aborted!
missing :controller
私はルートにかなり慣れていません。誰かが問題を確認/説明するのを手伝ってくれますか? 前もって感謝します。