LoginSignup
6
15

More than 3 years have passed since last update.

【Rails】デフォルト設定の日本語化方法簡単まとめ【備忘録】

Posted at

概要

Railsアプリで初期設定されている英語文章を日本語化する方法を簡単にまとめ。

公式リファレンス
https://railsguides.jp/i18n.html
RubyのI18nというRailsに同梱されているgemを利用して、英語設定をデフォルトで日本語にするよう変更する。
I18nは英語以外の別の1つの言語に翻訳する機能を持っている。

環境

ruby '2.6.5'
rails '5.2.4'

実装手順

config/initializers/locale.rbを作成し、
以下のコードを追加する。

config/initializers/locale.rb
I18n.config.available_locales = :ja
I18n.default_locale = :ja

config/locales/ja.ymlを作成。

上記ファイルにデフォルトのエラーメッセージや基本的なテーブルで使われるカラム名を元に英語から日本語を記載してくれてある以下URLの文をコピペするのが簡単。
https://github.com/svenfuchs/rails-i18n/blob/master/rails/locale/ja.yml

自分で設定したカラムの日本語化を行う

上記URLで記載してくれてある項目以外の単語は日本語化されないので、
他の単語・文言については自分で編集する必要がある。

config/locales/model.ja.ymlを作成し、
modelsに自分が作成したモデル名を追加する。
blog userモデルを作成していた場合の例の書き方は以下。
attributesに自分が設定したカラム名を入れる。

注意点1 :インデントのスペースが一つずれただけでエラーになる上にエラーログが出てこない。
注意点2 :英語と日本語の間には:(シンボル)と空白1つを入れないとエラーになる。

【例】

config/locales/model.ja.yml
ja:
  activerecord:
    models:
      blog: ブログ
      user: ユーザー
    attributes:
      blog:
        title: タイトル
        content: 内容
      user:
        title: タイトル
        name: 名前
        email: メールアドレス
        current_password: 現在のパスワード
        password: パスワード
        password_confirmation: 確認用パスワード
        remember_me: ログインを記憶

I18nで使えるメソッド

translate(別名メソッドt) :# 訳文を参照する
localize(別名メソッドl) :# DateオブジェクトやTimeオブジェクトを現地のフォーマットに変換する

【例】

ja:
  activerecord:
    models:
      task: タスク
      user: ユーザー
      label: ラベル
    attributes:
      task:
        title: タイトル

例えばymlに上記のような記載をしていて translate メソッドを使いたい場合、

<%= t('activerecord.attributes.task.title') %>

でタイトルという文字列がviewに参照される。

他にもI18nには様々な便利機能があるので以下参照。
https://qiita.com/Kta-M/items/bd4ba36a58ad602a9d8b

6
15
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
15