tkawachi Blog

Rails の JavaScript (CoffeeScript) でローカライゼーションを簡単に

Rails 3.2 のプロジェクトで作業していて JavaScript (CoffeeScript) でのローカライゼーションをしたくなりました。 調べてみたところ i18n-js が簡単につかえてよさそうな感じです。

まずは Gemfile に追加して bundle install

Gemfile
1
gem "i18n-js"

続いて application.js に以下の行を追加。

app/assets/javascripts/application.js
1
2
//= require i18n
//= require i18n/translations

app/views/layouts/application.html.erb に以下の行を追加。 指定した言語で訳が存在しない時にデフォルト言語の訳を参照したいので I18n.fallbacks = true; を指定しています。

app/views/layouts/application.html.erb
1
2
3
4
5
<script type="text/javascript">
    I18n.defaultLocale = "<%= I18n.default_locale %>";
    I18n.locale = "<%= I18n.locale %>";
    I18n.fallbacks = true;
</script>

最後に rake i18n:js:setup を実行すると config/i18n-js.yml が生成されます。

これで config/locales/*.yml に書いてある Rails (Ruby) 側で利用できる情報と同じものが利用できるようになります。

ローカライゼーションは I18n.t() 関数で実行します。

1
I18n.t("hello");

デフォルト値を指定したい場合はこんな感じ。

1
I18n.t("hello", {defaultValue: "こんちは"});

便利に使わせていただきます。

Comments