首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >symfony表单类型translation_domain不工作?

symfony表单类型translation_domain不工作?
EN

Stack Overflow用户
提问于 2021-02-26 11:45:52
回答 1查看 130关注 0票数 0

我的表单类型如下:

代码语言:javascript
复制
public function buildForm(FormBuilderInterface $builder, array $options)
{
    $builder
        ->add('name', null, [
            'translation_domain' => 'Admin.Global',
        ])
        ->add('isoCode', null, [
            'translation_domain' => 'Admin.Global',
        ])
        ->add('languageCode')
        ->add('flag_image', FileType::class, [
            'mapped' => false,
            'label' => 'flag',
            'constraints' => [
                new Image([
                    'maxSize' => '1024K'
                ])
            ],
            'required' => false,
            'translation_domain' => 'Admin.Global',
        ])
        ->add('active', CheckboxType::class, [
            'label_attr' => [
                'class' => 'switch-custom'
            ]
        ])
        ->add('isDefault', CheckboxType::class, [
            'label_attr' => [
                'class' => 'switch-custom'
            ]
        ]);
}

在我运行命令之后:

代码语言:javascript
复制
php bin/console translation:update --force en(or zh_CN)

在Admin.Global+intl-icu.en(或zh_CN).xlf文件中只有'name‘标签

为什么在xlf文件中不包含isocode和flag?我是否要在每个表单类型中添加'translation_domain‘=> 'Admin.Global’?

EN

回答 1

Stack Overflow用户

发布于 2021-03-12 13:43:59

问题是,根据docstranslation:update命令仅从两个位置提取要转换的字符串:

注入或自动装配转换器服务并调用

  • templates
  • any ()方法的trans文件/类。

您的表单类型类不是这两个类中的任何一个,因此它不会被处理。

您提到名称标签会进入xlf文件,而其他标签则不会。显然,name是从其他地方(例如从模板)获取的,而不是从form类获取的。

要处理表单类型类,可以安装JMSTranslationBundle。它提供了一个不同的命令translation:extract,该命令支持从(引用自docs)提取消息:

对定义为FormBuilder的->add()方法的选项的所有表单标签执行

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/66379830

复制
相关文章

相似问题

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