🎄teratailクリスマスプレゼントキャンペーン2024🎄』開催中!

\teratail特別グッズやAmazonギフトカード最大2,000円分が当たる!/

詳細はこちら
Ruby

Rubyはプログラミング言語のひとつで、オープンソース、オブジェクト指向のプログラミング開発に対応しています。

Ruby on Rails

Ruby on Railsは、オープンソースのWebアプリケーションフレームワークです。「同じことを繰り返さない」というRailsの基本理念のもと、他のフレームワークより少ないコードで簡単に開発できるよう設計されています。

Q&A

解決済

2回答

1946閲覧

railsでモデルの翻訳情報を追加したい。

kit1987

総合スコア16

Ruby

Rubyはプログラミング言語のひとつで、オープンソース、オブジェクト指向のプログラミング開発に対応しています。

Ruby on Rails

Ruby on Railsは、オープンソースのWebアプリケーションフレームワークです。「同じことを繰り返さない」というRailsの基本理念のもと、他のフレームワークより少ないコードで簡単に開発できるよう設計されています。

0グッド

2クリップ

投稿2019/10/16 13:55

前提・実現したいこと

railsで簡単な記事投稿サイトを作っており、画像のname descriptionの部分を日本語に変更したい。イメージ説明

該当ソースコード

h1 記事の新規登録 .nav.justify-content-end = link_to '一覧', posts_path, class: 'nav-link' = form_with model: @post, local: true do |f| .form-group = f.label :name = f.text_field :name, class: 'form-control', id: 'post_name' .form-group = f.label :description = f.text_area :description, row: 5, class: 'form-control', id: 'post_description' = f.submit nil, class: 'btn btn-primary'

自分で取り組んだこと

gemに以下を追加

gem 'rails-i18n'

config/application.rbに以下を追記

config.i18n.default_locale = :ja config.i18n.load_path += Dir[Rails.root.join('config', 'locales', '**', '*.yml').to_s]

config/locales/に、ja.ymlを作成し以下のコードを追加

ja: activerecord: errors: messages: record_invalid: "バリデーションに失敗しました: %{errors}" restrict_dependent_destroy: has_one: "%{record}が存在しているので削除できません" has_many: "%{record}が存在しているので削除できません" models: post: ポスト attributes: post: id: ID name: タイトル description: 投稿 created_at: 投稿日時 updated_at: 更新日時

情報だとこれで変更されるはずがされずぐぐってもなかなか解決できなかったので質問しました。わかる方がいればぜひご教授いただけたらと思います。

よろしくお願いいたします。

気になる質問をクリップする

クリップした質問は、後からいつでもMYページで確認できます。

またクリップした質問に回答があった際、通知やメールを受け取ることができます。

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

guest

回答2

0

ベストアンサー

yamlなので" "で囲ってるかどうかは影響しないはずです。
Railsを再起動してないとかそんなところではないでしょうか。
I18n自体が正常に機能しているかどうかの確認はコンソールで

rb

1I18n.t('activerecord.attributes.post.name')

を出力してみればいいかと思います。

投稿2019/10/17 00:16

編集2019/10/17 00:53
Mugheart

総合スコア2349

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

kit1987

2019/10/17 14:01

ご返答ありがとうございます。 再起動かけたところ反映されました。 初歩的なところであるにも関わらずありがとうございます。勉強します。
guest

0

文字列("something")にすれば日本語が反映するかと思います。

ja: activerecord: errors: messages: record_invalid: "バリデーションに失敗しました: %{errors}" restrict_dependent_destroy: has_one: "%{record}が存在しているので削除できません" has_many: "%{record}が存在しているので削除できません" models: post: "ポスト" attributes: post: id: "ID" name: "タイトル" description: "投稿" created_at: "投稿日時" updated_at: "更新日時"

投稿2019/10/16 21:37

no1knows

総合スコア3365

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

kit1987

2019/10/16 22:19

ご返答ありがとうございます。 再度の質問で申し訳ないですが 文字列というのは"ポスト"のところでしょうか?
no1knows

2019/10/16 22:43 編集

提示したコードを見比べていただければわかりやすいと思うのですが、それぞれの行の : より右側のところです。 例えばid: "ID"もそうですし、name: "タイトル"もそうです。 Rubyは日本語を変数名やメソッド名につかえるようなので下記のような違いがでてくるかと思います。 name: タイトル だと「nameというキーは、タイトルという変数に翻訳」 name: "タイトル" だと「nameというキーは、タイトルという文字列に翻訳」 https://railsguides.jp/i18n.html#rails%E3%82%A2%E3%83%97%E3%83%AA%E3%82%B1%E3%83%BC%E3%82%B7%E3%83%A7%E3%83%B3%E3%82%92%E5%9B%BD%E9%9A%9B%E5%8C%96%E5%90%91%E3%81%91%E3%81%AB%E8%A8%AD%E5%AE%9A%E3%81%99%E3%82%8B
kit1987

2019/10/16 23:21

ご返答ありがとうございます。 理解しました。 只今、PCで確認ができないのでまた、帰宅して確認して、また返答します。
no1knows

2019/10/17 00:25

動作確認したところ、下記のMugheartさんが正しいです。 ごめんなさい。
kit1987

2019/10/17 14:02

こちらこそ色々とありがとうございます 再起動かけたところ解決しました。 ありがとうございました。
guest

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

15分調べてもわからないことは
teratailで質問しよう!

ただいまの回答率
85.36%

質問をまとめることで
思考を整理して素早く解決

テンプレート機能で
簡単に質問をまとめる

質問する

関連した質問