Spree2.0のローカライズ(1)
Spreeのデフォルト言語は当然ながら英語なので、日本語化してみます。
なお、前回からの続きでspree_fancyが入っている場合、
Routing Error
No route matches {:controller=>"spree/taxons", :action=>"show", :id=>nil}
Try running rake routes for more information on available routes.
が出るので、spree_fancyが入っていないアプリケーションを作って試してください。
spree_i18nを入れる
Spreeの多言語対応はRails標準のi18nを使って行われており、そのための辞書ファイルがspree_i18nとして開発されています。
というわけで、このgemを入れていきます。*1
まずはGemfileを設定。*2
#Gemfile gem 'spree_i18n', github: 'spree/spree_i18n', branch: "3-0-stable"
そして、インストール。*3
$ bundle install $ rails g spree_i18n:install Would you like to run the migrations now? [Y/n] y
ロケールの設定
コメントアウトされているデフォルトロケールをアンコメントし、さらにデンマーク語(:de)を日本語(:ja)に変更します。
#config/application.rb module Mystore class Application < Rails::Application config.i18n.default_locale = :ja end end
これで、サイトの表示が日本語になるはずです。
通貨の設定
Webの管理画面から設定できます。
その他
他にもゾーンや都道府県の設定を行う必要があり、これらは通貨と同様にWebの管理画面から設定することができます。
しかし、現在、spree_i18nを有効にすると、管理画面のJavaScriptが有効に動作しなくなるために、ゾーンなどの設定を行うことができません。*4
この問題が解決し次第、続きを書こうと思っています。
Next
*1:未確認ですが、「最低1回はデフォルト言語が英語の状態で管理画面にログインしていないとエラーが出る」という情報があります。その場合は言語を英語に戻してログインした上で再度下記の設定を行なってください。
*2:このエントリ執筆時点では、masterブランチを指定すると依存関係がぶつかったので、3-0-stableを指定しています。
*3:下記のrails g spree_i18n:installは公式マニュアルに書かれていませんでしたが、実行しないと「ActiveRecord::StatementInvalid in Spree/home#index Could not find table 'spree_taxonomy_translations'」といったエラーが出力されます。