Help us understand the problem. What is going on with this article?

Phoenixのlocaleを日本語に設定して、エラーメッセージを日本語にする

More than 3 years have passed since last update.

Phoenix 1.1.0 から gettext に対応しました。日本語の.poファイルを用意し、locale を設定することでエラーメッセージを日本語に変更することができるようになりましたので、方法を共有します。

設定方法

GitHubで公開している日本語の.poファイルの説明そのままなので、説明自体は割愛します。

このファイルを適用すると、モデルの changeset/2 で何も設定しなくても、このようにエラーメッセージが日本語で表示されるようになります。

スクリーンショット 2016-01-01 16.46.15.png

メッセージの置き換え

標準でメッセージが設定されている関数(Ecto.Changesetとか)では、message オプションを指定すると、メッセージを任意の文字列で置き換えることができます。標準の日本語訳だとしっくりこない場合、便利かと思います。

例)

model
|> cast(params, @required_fields, @optional_fields)
|> validate_length(:password, min: 2, max: 4)
|> validate_format(:password, ~r/^[0-9]*$/, [message: "数字以外が設定されてるよ!"])
bm-sms
高齢社会に適した情報インフラを構築することで価値を創造し社会に貢献し続ける
https://www.bm-sms.co.jp/
Why not register and get more from Qiita?
  1. We will deliver articles that match you
    By following users and tags, you can catch up information on technical fields that you are interested in as a whole
  2. you can read useful information later efficiently
    By "stocking" the articles you like, you can search right away