Ruby on Railsメモ|I18n

調べたもののメモです
随時更新

I18n入門的な事

フラッシュメッセージの日本語化(controllerのリテラルを日本語化)

フォルダとファイルを作成
(最初にmodelsフォルダを作って仕分けをしたのでcontrollerも分ける)

/sample_app/config/locales/controller/ja.yml
#言語
ja:
  #controller名(_controller部分は付けない)
  users:
    #アクション名
    create:
      #リテラル: '対応リテラル'
      welcome_message: 'サンプルアプリへようこそ!'
/sample_app/app/controllers/users_controller.rb
・
・
・
  def create
    @user = User.new(user_params)
    if @user.save
      #tメソッドで翻訳
      flash[:success] = t('.welcome_message')
      redirect_to @user
    else
      render 'new'
    end
  end
・
・
・

HTMLを含めた出力

キーに「_html」を付ける
(もちろんリンク以外でもOK)

/sample_app/config/locales/views/static_pages/ja.yml
 static_pages:
      home:
        Welcome_Sample_App: 'サンプルアプリへようこそ!'
        welcome_message_html: 'このページは<a href="https://railstutorial.jp/">Ruby on Rails Tutorial</a>のサンプルアプリです'
/sample_app/app/views/static_pages/home.html.erb
<div class="center jumbotron">
  <h1><%= t('.Welcome_Sample_App') %></h1>

  <h2>
    <%= t('.welcome_message_html') %>
  </h2>

  <%= link_to "Sign up now!", signup_path, class: "btn btn-lg btn-primary" %>
</div>

<%= link_to image_tag("rails.png", alt: "Rails logo"),
            'http://rubyonrails.org/' %>