我使用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')));
...
字符串
我想翻译“是”和“否”选项,但我不知道如何使用这里的翻译器。
5条答案
按热度按时间wpx232ag1#
您可以像往常一样使用翻译资源。这对我很有效:
字符串
然后将您的翻译添加到Bundle的Resources->translations目录。
来自@CptSadface的更新:
在symfony 2.7中,可以通过choice_label参数指定翻译域,如下所示:
型
如果不指定域,则不会转换选项。
rqcrx0a62#
我搜索了一段时间来寻找答案,但最终我发现了Symfony如何翻译表单内容。在你的情况下,最简单的方法似乎是通过添加YAML或XLIFF翻译文件到你的应用程序中来添加“yes”和“no”的翻译(例如:app/Resources/translations/messages.de.yml)或您的bundle。这在这里描述:http://symfony.com/doc/current/book/translation.html
在我看来,问题是你似乎不能使用自定义翻译键。FOSUserBundle的人用“表单主题”(http://symfony.com/doc/2.0/cookbook/form/form_customization.html)解决了这个(或类似的)问题。这里有两行重要的代码来实现表单元素id作为转换键的使用:
https://github.com/FriendsOfSymfony/FOSUserBundle/blob/master/Resources/views/Registration/register_content.html.twig#L1 https://github.com/FriendsOfSymfony/FOSUserBundle/blob/50ab4d8fdfd324c1e722cb982e685abdc111be0b/Resources/views/form.html.twig#L4
通过添加一个表单主题,你可以修改模板中几乎所有的表单--这似乎是正确的方法。
(对不起,我不得不分裂的两个链接B/C我没有足够的声誉发布两个以上的链接。伤心。)
jv2fixgn3#
在symfony 2.7中,使用 choice_label 参数,您可以像这样指定转换域:
字符串
如果不指定域,则不会转换选项。
iqxoj9l94#
CptSadface的回答帮助我翻译了我的实体选择。
字符串
nle07wnf5#
Symfony 5.2增加了可翻译的消息,简化了这一点。
字符串