0
0

More than 1 year has passed since last update.

エラーメッセージを日本語化する

Last updated at Posted at 2023-01-16

日本語化の方法

  • rails-i18ngemを使って日本語にするらしい。

出典

  • p313 Railsでよく利用する辞書データはrails-i18nというgemで利用できます。

出典

気づき

このgemをインストールをしないと翻訳できないのだろうか?

I18nの属性

rb(main):049:0> I18n.load_path
# カスタム訳文ファイルの場所を示す
=>
["/*****************/active_support/locale/en.yml",
 "/*****************/active_support/locale/en.rb",
 "/*****************/active_model/locale/en.yml",
 "/*****************/active_record/locale/en.yml",
 "/*****************/action_view/locale/en.yml",
 "*****************/config/locales/en.yml",
 "*****************/web_console/locales/en.yml"]
irb(main):050:0> I18n.default_locale
# デフォルトロケールの取得と設定
=> :en
irb(main):051:0> I18n.available_locales
# アプリケーションでの利用が許されるロケールの許可リスト
=> [:en]
irb(main):055:0> I18n.locale
# 現在のロケールの取得と設定
=> :en

出典

エラー文を日本に設定

デフォルトのロケールを変更させる

config/application.rb
module app
  class Application < Rails::Application
    config.load_defaults 7.0
    config.time_zone = "Tokyo"
    config.i18n.default_locale = :ja
    # 上2行を追加しました。
    config.generators.system_tests = nil
  end
end

p313 config/application.rbconfig.i18n.default_locale = :jaを追加することでロケールを設定できる。

出典

さっきの属性を使っている。

irb(main):050:0> I18n.default_locale
# デフォルトロケールの取得と設定
=> :en

日本語の辞書ファイルを書く

これをコピペした。

気づき

rails sを一回閉じたら成功した。
しかしモデルの属性名が英語になっている。

ja.ymlにモデルの属性名をつけて翻訳させる

ja.yml
ja:
  activerecord:
    models:
      user: "ユーザー"
    attributes:
      user:
        name: "名前"
        email: "eメール"
        password: "パスワード"
.
.
.

出典

感想

頭ごなしにrails-i18nのgemをインストールすればいいと思っていたが、
自分なりにエラー文を翻訳できてよかった。

次はこの翻訳で使ったソースコードの中身を勉強する。

0
0
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
0
0