首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >Symfony覆盖entity_widget

Symfony覆盖entity_widget
EN

Stack Overflow用户
提问于 2017-11-10 05:36:56
回答 1查看 100关注 0票数 0

我有包含类别的表,而不是为每种语言都有name列,而是存储翻译,如下所示:

代码语言:javascript
运行
复制
1   2   category.macbook_12.name    img-12  category.macbook_12.title   category.macbook_12.title   macbook-12.jpg  0
2       category.macbook.name   macbook category.macbook.title  category.macbook.description    macbook.jpg 0
3   2   category.macbook_air.name   macbook-air category.macbook_air.title  category.macbook_air.description    macbook-air.jpg 0
4   3   category.macbook_air_11.name    macbook-air-11  category.macbook_air_11.title   category.macbook_air_11.description macbook-air-11.jpg  0
5   3   category.macbook_air_13.name    macbook-air-13  category.macbook_air_13.title   category.macbook_air_13.description macbook-air-13.jpg  0
6   2   category.macbook_pro.name   macbook-pro category.macbook_pro.title  category.macbook_pro.description    macbook-pro.jpg 0
7   6   category.macbook_pro_13.name    macbook-pro-13  category.macbook_pro_13.title   category.macbook_pro_13.description macbook-pro-13.jpg  0
....

我试图用实体字段创建表单。如下所示:

代码语言:javascript
运行
复制
->add('categories', EntityType::class, [
                'class' => Category::class,
                'choice_label' => 'name',
                'placeholder' => 'form.product.category.placeholder'
            ])

它不是翻译名字类别,而是不翻译它们。

我想,我应该定制entity_widget,并在其中添加一个trans,但是我找不到原始的,所以我可以编辑它,因为我不知道如何从实体中获取数据。

在哪里可以找到原始的entity_widget?或者还有其他的方法来强迫翻译?

谢谢

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2017-11-12 19:21:47

如果要翻译表单中的选择,可以设置

choice_translation_domain => 'messages'

您的翻译必须在目录中。

  • app/Resources/translations目录;
  • app/Resources/<bundle_name>/translations目录;
  • 任何包中的Resources/translations/目录。

通过Docs

并存储在文件messages.{NEEDED_LANGUAGE}.yml中,如@DOZ所说。

NEEDED_LANGUAGE可以是短的(en,de,ru,pl)或长(en_US,en_AU,en_GB)。

此外,您还可以根据需要命名您的翻译,但可以使用NEEDED_LANGUAGE符号。因此,您的category.yml文件必须命名为category.en.yml,并且必须存储在翻译目录中。

为了使用来自自定义文件的翻译,您必须在每个字段上或在小枝文件中全局手动设置translation_domain和choice_translation_domain。

代码语言:javascript
运行
复制
# src/{BUNDLE_NAME}/Resources/translations/messages.en.yml (based on symfony version)
category:
    macbook_12.name: "Macbook 12"
    macbook_12.title: "Macbook 12` laptop"
    macbook.name: "Macbook"
    macbook.title: "Macbook laptop"
form.product.category.placeholder: "Awesome macbooks here!"
# ... and yet
票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/47216287

复制
相关文章

相似问题

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