【发布时间】:2012-12-20 02:54:45
【问题描述】:
我需要在我的 symfony 2 表单的选择字段中翻译实体的值。我知道正常的选择字段是自动翻译的。但我想翻译来自我这样指定的实体的选择:
$builder->add('status', 'entity', array(
'class' => 'Acme\DemoBundle\Entity\Status',
'translation_domain' => 'AcmeDemoBundle'
));
假设我有一个实体,它将返回 old status 的值,我使用 __toString 函数实现了它。根据这个消息文件,它应该在我的表单中生成的选择列表中给我new status。
<?xml version="1.0"?>
<xliff version="1.2" xmlns="urn:oasis:names:tc:xliff:document:1.2">
<file source-language="en" datatype="plaintext" original="file.ext">
<body>
<trans-unit id="1">
<source>old status</source>
<target>new status</target>
</trans-unit>
</body>
</file>
</xliff>
我的问题是:这可能吗?如果是,我错过了什么?
提示:例如,如果我只翻译 twig 中的单个文本,则翻译工作。
【问题讨论】:
-
你确定你使用的是 Symfony 2.1.x 吗?翻译域在 Symfony 2.0.x 中不存在。
-
是的,我确定。没有显示错误,如果我将属性更改为不存在的东西,symfony 会直接显示错误。
-
在没有translation_domain 的情况下在另一种表单类型中使用相同的实体效果很好。我从原始类型中删除了该属性,它现在也可以使用。看来,我只是拼错了域。
标签: php forms symfony internationalization