日本語化の方法
-
rails-i18n
gemを使って日本語にするらしい。
出典
- 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.rb
でconfig.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をインストールすればいいと思っていたが、
自分なりにエラー文を翻訳できてよかった。
次はこの翻訳で使ったソースコードの中身を勉強する。