##I18nとは
Internationalizationの略。
国際化という意味です。このメソッドを使用し、railsのエラーメッセージや、
自分で設定したカラムの日本語化をすることができます。
今回は、フラッシュメッセージの日本語化に苦労したので、その方法を紹介します。
まずは、表示したい日本語の設定を行っていきます。
ja.yml
ja:
notice:
create: タスクを作成しました!
update: タスクを編集しました!
destroy: タスクを削除しました!
notice: noticeオプションはredirect_toメソッドで使用でき、フィードバックメッセージを渡すことができます。
先ほど設定した、「タスクを作成しました!」という文字を表示させるためには、t('notice.create')とコントローラーに記述します。
controller.rb
def create
@task = Task.new(task_params)
if @task.save
redirect_to tasks_path, notice: t('notice.create')
else
render :new
end
end
def update
if @task.update(task_params)
redirect_to tasks_path, notice: t('notice.update')
else
render :edit
end
end
def destroy
@task.destroy
redirect_to tasks_path, notice: t('notice.destroy')
end
noticeをビューに記述すると、フラッシュメッセージを表示することができます。
index.html.erb
<p><%= notice %></p>
無事に日本語で表示することができました!