首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >用Symfony2翻译使用jqbootstrapvalidation的验证消息

用Symfony2翻译使用jqbootstrapvalidation的验证消息
EN

Stack Overflow用户
提问于 2013-08-04 01:08:25
回答 2查看 1K关注 0票数 0

我使用jqbootstrapvalidation在客户端使用jquery验证我的表单。

我目前正在使用Symfony2开发的应用程序提供多种语言,我使用Symfony翻译来确保这个功能,这是一个简单的例子。

代码语言:javascript
复制
$builder->add ( 'lastName', 'text', array (
                'label' => 'register.last_name' 
        ) )

现在,我想转换jqbootstapvalidation中的验证消息,因此我使用了数据验证属性,如本例所示:

代码语言:javascript
复制
->add ( 'firstName', 'text', array (
            'label' => 'register.first_name'
            'attr' => array (
                    'minlength' => "5",
                    'data-validation-minlength-message' => 'register.min_length'
            ) 
    ) )

但是,我得到的输出是“register.min_length”,而不是消息文件中的验证消息。

我希望你能理解我的问题并帮助我解决它。

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2013-08-05 02:08:57

你可以注册你的作为服务的形式

然后,将translator服务@translator注入表单的构造函数中。

代码语言:javascript
复制
use Symfony\Component\Translation\TranslatorInterface;

protected $translator;

public function __construct(TranslatorInterface $translator)
{
    $this->translator = $translator;
} 

最后,使用表单类型内的转换器来翻译验证消息。

代码语言:javascript
复制
array(
// ...
'data-validation-minlength-message' => $this->translator->trans('register.min_length'),
),

如果使用new YourFormType($this->container->get('translator'))构造对象,请确保将表单作为服务调用,或者将转换器传递给表单。

票数 0
EN

Stack Overflow用户

发布于 2014-12-29 18:32:49

您可以在控制器中直接翻译消息。

类似于:

代码语言:javascript
复制
$t = $this->get('translator');
// ...
$builder->add ( 'firstName', 'text', array (
            'label' => 'register.first_name'
            'attr' => array (
                    'minlength' => "5",
                    'data-validation-minlength-message' => $t->trans('register.min_length');
            ) 
    ) );
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/18038828

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档