Deep in Deep

Railsの国際化(i18n)でyes / noが正しく翻訳されない件

Ruby

公開日 : 2023/5/3

概要

Ruby on RailsでYAMLファイルに日本語化のための記述をしていたが、yes / noの部分を「はい」/「いいえ」に翻訳したかったが、翻訳されないまま出力された。

問題が発生していたYAMLファイル

一部抜粋

ja.yml
ja:
  yes: はい
  no: いいえ

という具合にlocaleのファイルを記述していた。yesの部分は「はい」と翻訳されてほしかったのだが、「Yes」と翻訳される。

調べてみるとYAML記法には、キーとして設定するためにエスケープが必要な単語があるようでした。

エスケープが必要なキーは以下のもの

参考

Railsガイド 国際化(i18n)

YAMLファイルの修正

上記を踏まえ、日本語化用のYAMLファイルを修正すると

ja.yml
ja:
  "yes": はい
  "no": いいえ

としてあげると、yesやnoの単語がエスケープされ、正しく翻訳できる。