web-dev-qa-db-ja.com

認証のカスタマイズ-ログインSymfony2メッセージ

だから私はSymfony2Bookのセキュリティの章を読んでいます。私はすべてを理解していますが、ログインエラーが発生した場合のエラーメッセージをカスタマイズしたいと思います。

これはどのファイルで変更できますか?

これはテンプレートです:

{% if error %}
    <div>{{ error.message }}</div>
{% endif %}

<form action="{{ path('login_check') }}" method="post">
<label for="username">Username:</label>
<input type="text" id="username" name="_username" value="{{ last_username }}" />

<label for="password">Password:</label>
<input type="password" id="password" name="_password" />

{#
    If you want to control the URL the user is redirected to on success (more details below)
    <input type="hidden" name="_target_path" value="/account" />
#}

<input type="submit" name="login" />

これを行うための最悪の方法は次のようなものになると思います。

if (error.message=="Bad credentials")
    echo "Los datos son erróneos :)"

if (error.message==The presented password is invalid")
    echo "La combinación username/password no es correcta :)"

手伝ってくれませんか。


編集:動作しました:

誰かがこれを行う必要がある場合は、必ずこの行をconfig.ymlに追加してください

#app/config/config.yml
framework:
    translator: { fallback: en }

そして、ファイルmessages.whateverisyourlanguage.yml、私の場合はmessages.es.ymlに、次のような行を入れます。

翻訳したいテキスト:翻訳されたテキスト

#Foo\DummyBundle\Resources\translations\messages.es.yml
The presented password cannot be empty.: El campo contrasena no debe estar vacio
The presented password is invalid.: Los datos suministrados son incorrectos
Bad credentials: Los datos suministrados son incorrectos

翻訳するテキストに注意してください。テキストの最後にドットがある場合は、ドットを配置する必要があります。私はそれをしていませんでした、そしてそれは機能していませんでした。

footranslate.footranslateとは異なります

ご挨拶! :)

19
Francisco Ochoa

translation を使用できます。 parameters.iniロケールを設定 あなたの言語に合わせて メッセージファイル を作成します。次に、twigテンプレートの使用:

{% if error %}
    <div class="error">{{ error.message|trans({},'messages') }}</div>
{% endif %}
16
jkucharovic

翻訳を使用したくない場合は、別の可能性があります。たとえば、メッセージを置き換えることができます。

{{ error.message | replace({"Bad credentials." : "Invalid username or password."}) }}
3
jpbaxxter