如何在 Symfony 中翻译(和复制)CSRF 消息?
How to translate (and replicate) the CSRF Message in Symfony?
我的一些用户在我的网络应用程序中遇到 CSRF 错误。他们告诉我他们不知道该怎么办。
为了更好的用户体验,我想翻译一下留言。有人可以告诉我该怎么做吗?
此外,如何在我的开发环境中实际复制 CSRF 错误?
我同时使用 Symfony 2.8 和 3.0。
您可以将消息替换为翻译文件中添加的以下行
<trans-unit id="1">
<source>The CSRF token is invalid. Please try to resubmit the form.</source>
<target>The CSRF token is invalid. Please try to resubmit the form.</target>
</trans-unit>
在目标标签中,您可以更改您的自定义消息。如果对此有任何疑问,请告诉我
记得将您的翻译添加到验证器 validator.<lang>.<type>
文件中(而不是在消息中:messages
),例如:
validator.en.yml
<trans-unit id="1">
<source>The CSRF token is invalid. Please try to resubmit the form.</source>
<target>The CSRF token is invalid. Please try to resubmit the form.</target>
</trans-unit>
编辑 - 每次更改翻译文件后刷新缓存
编辑 - test/replicate 行为:
您可以使用 firebug 之类的工具来编辑和更改 _token 表单隐藏元素并提交表单或暂时从表单中删除该字段。
希望对您有所帮助
如果要为特定表单翻译,请在表单选项数组中传递翻译后的值 - csrf_message。 (至少在 3.4 symfony 上)。就像在控制器中创建时一样
$options['csrf_message'] = 'Translated value'
$this->createForm(CheckoutType::class, $data, $options);
复制选项之一是修改在前端控制器中找到的 $_POST 数组。喜欢 app.php
$_POST['checkout']['_token'] = '1';
我的一些用户在我的网络应用程序中遇到 CSRF 错误。他们告诉我他们不知道该怎么办。
为了更好的用户体验,我想翻译一下留言。有人可以告诉我该怎么做吗?
此外,如何在我的开发环境中实际复制 CSRF 错误?
我同时使用 Symfony 2.8 和 3.0。
您可以将消息替换为翻译文件中添加的以下行
<trans-unit id="1">
<source>The CSRF token is invalid. Please try to resubmit the form.</source>
<target>The CSRF token is invalid. Please try to resubmit the form.</target>
</trans-unit>
在目标标签中,您可以更改您的自定义消息。如果对此有任何疑问,请告诉我
记得将您的翻译添加到验证器 validator.<lang>.<type>
文件中(而不是在消息中:messages
),例如:
validator.en.yml
<trans-unit id="1">
<source>The CSRF token is invalid. Please try to resubmit the form.</source>
<target>The CSRF token is invalid. Please try to resubmit the form.</target>
</trans-unit>
编辑 - 每次更改翻译文件后刷新缓存
编辑 - test/replicate 行为:
您可以使用 firebug 之类的工具来编辑和更改 _token 表单隐藏元素并提交表单或暂时从表单中删除该字段。
希望对您有所帮助
如果要为特定表单翻译,请在表单选项数组中传递翻译后的值 - csrf_message。 (至少在 3.4 symfony 上)。就像在控制器中创建时一样
$options['csrf_message'] = 'Translated value'
$this->createForm(CheckoutType::class, $data, $options);
复制选项之一是修改在前端控制器中找到的 $_POST 数组。喜欢 app.php
$_POST['checkout']['_token'] = '1';