LoginSignup
6
8

More than 5 years have passed since last update.

[rails]activeadminで作成した管理画面を日本語化する

Posted at

activeadminで作成した管理画面を日本語化する。

railsの管理画面系のgemのactiveadminを使って管理画面を作成した。
が、しかしデフォルトでは英語だったので日本語にしたかった。

ja.ymlを用意

まず日本語化させるためにconfig/locales/にja.ymlを用意。

上部メニューのtitleを日本語化

スクリーンショット 2018-10-02 12.07.56.png
上部のtestを日本語にするためにja.ymlを編集します。

ja:
  activerecord:
    models:
      test: テスト

と編集すると反映されます。

フォーム項目の日本語化

スクリーンショット 2018-10-02 12.10.18.png
次はフォームの項目名を日本語にするためにja.ymlを再度編集します。

ja:
  activerecord:
    models:
      test: テスト
    attributes:
      test:
        name: 名前
        state: 状態

今回一番苦労した箇所

最後は今回一番苦労した箇所を紹介します。
スクリーンショット 2018-10-02 12.13.02.png
ここのenumで設定したdraft,publishedの部分です。
これは
'enum_help'というgemを入れることで簡単に設定できるみたいです。

gemfileに'enum_help'を追加しbundle installします。

追加されたらja.ymlを編集します。

ja:
  enums:
    state:
      draft: 非公開
      published: 公開
  activerecord:
    models:
      test: テスト
    attributes:
      test:
        name: 名前
        state: 状態

次はapp/admin/配下にtest.rb(モデル名)があるので
それを見ると

ActiveAdmin.register Test do
  permit_params :name, :state

  filter :name

  # form partial: 'form'

  form do |f|
    f.inputs do
      f.input :name
      f.input :state
    end
    f.actions
  end

  show do
    attributes_table_for test do
      row :name
    end
  end
end

このような中身になっているかと思います。

これを以下のように編集すれば、日本語化できます。

ActiveAdmin.register Test do
  permit_params :name, :state

  filter :name

  # form partial: 'form'

  form do |f|
    f.inputs do
      f.input :name
      f.input :state, collection: Test.states_i18n.invert
    end
    f.actions
  end

  show do
    attributes_table_for test do
      row :name
      row (:state) {
        |b| b.published?
          span(b.state_i18n)
      }
    end
  end
end

これで日本語化できるみたいです。

6
8
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
6
8