I18n.tで変数を使う/動的に翻訳を増やす

I18n.tを使ってyamlから文字列を読み込んでいる時、文中に変数名を入れたいことがある。その場合は、yaml側では変数名を%{ }と囲んで、I18n.tの引数としてハッシュを渡せばよい。詳しくは、以下のドキュメントに記載されていた。

http://guides.rubyonrails.org/i18n.html#interpolation

上記URLからサンプルコードを引用:

I18n.backend.store_translations :en, :thanks => 'Thanks %{name}!'
I18n.translate :thanks, :name => 'Jeremy'
# => 'Thanks Jeremy!'

YAMLでコロン(:)をエスケープする

YAMLで文中にコロンを入れたい時にどうすればよいか。試しにコロンを二つ重ねて::にしたら以下のようなエラーが出てしまってダメだった。

Psych::SyntaxError: (/myproject/config/locales/en.yml): could not find expected ':' while scanning a simple key at line 0000 column 00

単純な話だけれど、YAMLでコロンをエスケープするには、バックスラッシュを前に付ければいい。「\:」というようにすれば、文中でもコロンを使える。