我有一个Doctrine实体,它使用可翻译的Doctrine扩展进行了翻译:
<?php
namespace Myapp\ProductBundle\Entity;
use Doctrine\ORM\Mapping as ORM;
use Gedmo\Mapping\Annotation as Gedmo;
use Gedmo\Translatable\Translatable;
/**
* @ORM\Table(name="product_property")
* @ORM\Entity()
* @Gedmo\TranslationEntity()
*/
class Property implements Translatable
{
/**
* @ORM\Column(name="id", type="integer")
* @ORM\Id
* @ORM\GeneratedValue(strategy="AUTO")
*/
private $id;
/**
* @Gedmo\Translatable
* @ORM\Column(name="name", type="string", length=255)
*/
private $name;
/**
* @ORM\OneToMany(
* targetEntity="PropertyTranslation",
* mappedBy="object",
* cascade={"persist", "remove"}
* )
*/
private $translations;
/**
* @Gedmo\Locale
* Used locale to override Translation listener`s locale
* this is not a mapped field of entity metadata, just a simple property
*/
private $locale;
public function setTranslatableLocale($locale)
{
$this->locale = $locale;
}
public function getTranslations()
{
return $this->translations;
}
public function addTranslation(PropertyTranslation $t)
{
if (!$this->translations->contains($t)) {
$this->translations[] = $t;
$t->setObject($this);
}
}
}
现在,我想要用我的翻译中可用的每种语言呈现一个带有“名称”属性的输入字段的表单。
最好如何完成?
translation_domain
指定了表单标签使用的翻译域。这里的问题是如何添加字段,让我一次输入name
字段的多个翻译,例如 3 个字段:“Name - 英语”,“Name - 德语”,“Name - 法语”。 - phidahtranslation_domain
来指定翻译文件。FOSUserBundle 似乎非常好地实现了这个系统。FormType:https://github.com/FriendsOfSymfony/FOSUserBundle/blob/master/Form/Type/RegistrationFormType.php 翻译:https://github.com/FriendsOfSymfony/FOSUserBundle/tree/master/Resources/translations - Hyunmin Kim