forms - 以 Symfony2 类形式翻译选择选项

标签 forms symfony internationalization translation choicefield

我在 Symfony2 Beta3 中使用了一个类形式,如下所示:

namespace Partners\FrontendBundle\Form;

use Symfony\Component\Form\AbstractType;
use Symfony\Component\Form\FormBuilder;

class ConfigForm extends AbstractType
{
    public function buildForm(FormBuilder $builder, array $options)
    {
        $builder->add('no_containers', 'choice', array('choices' => array(1 => 'yes', 0 => 'no')));
        ...

我想翻译"is"和“否”选项,但我不知道如何在此处使用翻译器。

最佳答案

您可以照常使用翻译资源。这对我有用:

    $builder->add('sex', 'choice', array( 
        'choices'   => array(
            1 => 'profile.show.sex.male', 
            2 => 'profile.show.sex.female',
        ),
        'required' => false,
        'label'     => 'profile.show.sex.label',
        'translation_domain' => 'AcmeUserBundle'
    ));

然后将您的翻译添加到您的 Bundle 的 Resources->translations 目录中。

来自@CptSadface 的更新:

symfony 2.7 ,使用 choice_label 参数,您可以像这样指定翻译域:
'choice_label' => 'typeName',
'choice_translation_domain' => 'messages',

不指定域,选项不会被翻译。

关于forms - 以 Symfony2 类形式翻译选择选项,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/6187984/

相关文章:

javascript - AngularJS - 如何验证元素指令?

css - 如何选择除类型 ="value"之外的所有输入?

php - 没有从另一个包中找到路由

php - Nelmio Api Doc 中的组排除在更新 Composer 后不起作用

MySQL:从右表或默认表中读取

php - 如何在 Laravel session 中存储输入

forms - 如何在 Laravel 5 中测试表单请求规则?

php - 在 Docker 环境中使用 Blackfire 容器分析我的应用程序

使用 Visual Studio 2015 计算国际字符的 C++ 代码

java - 如何在 messages.properties 文件中使用命名参数?