我正在使用带有Sonata管理包的Symfony 2.3。我知道我可以用这种方式翻译标签:
->add('shortDescription', null, array('label'=>'shortDescriptionTranslated'))
但这只能通过"configureFormFields"方法实现,而不能用于dataGrid和listFields。
你能给我提供一个完整的例子,用全局的方式翻译标签吗?我看了这里(Sonata管理包中的标签),但我不知道在xliff文件中写什么。
谢谢!
您是否查看了索纳塔项目网站上的翻译文档:http://www.sonata-project.org/bundles/admin/master/doc/reference/translation.html?
您可以为每个管理员设置一个全局目录,默认目录为"消息"。根据翻译策略的不同,源密钥会有所不同,一旦获得密钥,您就可以使用xliff或yaml文件将相关标签翻译为Symfony Framework中的任何其他翻译。
它以相同的方式工作:
protected function configureDatagridFilters(DatagridMapper $datagridMapper)
{
$datagridMapper
->add('id', null, array('label' => 'ID'))
->add('username', null, array('label' => 'Логин'))
;
}
protected function configureListFields(ListMapper $listMapper)
{
$listMapper
->addIdentifier('id', null, array('label' => 'ID'))
->addIdentifier('username', null, array('label' => 'Логин'))
;
}
您可以在此处看到结果:http://joxi.ru/V57lUdg5CbCqHxR9UwY
通过重写xliff
文件,可以转换标准的UI元素,而不是实体标签。