在sonataAdmin中的翻译

时间:2014-03-26 07:28:27

标签: php symfony doctrine-orm twig

我有标题,描述和图像的实体。标题和描述是可翻译的,并希望以三种语言提供:en,de和sl。默认语言环境是sl。

现在我配置a2lix,SonataAdmin和StofDoctrineExtension。

在奏鸣曲管理中使用可翻译的最佳做法(当然也是正确的)。

版本1:

$formMapper
        ->add("title") //default language
        ->add('description') //default language
        ->add('image', 'sonata_type_model_list', array(), array('link_parameters' => array('context' => 'default')))
        ->add('translations', 'a2lix_translations_gedmo', array(   // Use the old gedmo strategy
            'translatable_class' => 'My\CoreBundle\Entity\SliderTranslation',
    ));

标题和说明是默认语言分开的。其他语言环境(en,de)是可翻译的标签。

第2版:

$formMapper
        ->add('image', 'sonata_type_model_list', array(), array('link_parameters' => array('context' => 'default')))
        ->add('translations', 'a2lix_translations_gedmo', array(   // Use the old gedmo strategy
            'translatable_class' => 'My\CoreBundle\Entity\SliderTranslation',
    ));

标题和说明不分开,并包含在翻译标签中。翻译标签是sl,en和de。

1 个答案:

答案 0 :(得分:1)

第二个成为A2lixTranslationForm的2.x版本的标准。

我建议使用另一种策略尝试此版本2.x:A2lix,Knp或Prezent。 与Gedmo相反,这些策略在将数据存储在数据库中的方式相互兼容,因此,您将来可以轻松地从一个切换到另一个。

您也可以查看https://github.com/sonata-project/SonataTranslationBundle,目前正处于开发阶段。