在我的Symfony项目(2.5.7)中,我使用了Sonata Admin Bundle 2.3 . 在Admin类中,我指定了我的DataGridForm,如下所示:
protected function configureDatagridFilters(DatagridMapper $datagrid)
{
$datagrid
->add('name')
->add('created_by_user');
}
其中 name
是文本, created_by_user
是与用户类的一对多关系 . 因此,我有漂亮的过滤器形式,但 created_by_user
字段的运算符,即label_type_equals和label_type_not_equals,不会被翻译 . 为其他字段提供翻译: name
:label_type_contains,label_type_not_contains,label_type_equals,这很好 .
在我的app / config / config.yml中我设置:
framework:
translator: { fallback: "pl" }
翻译由SonataAdminBundle在SonataAdminBundle.pl.xliff中提供,位于vendor / sonata-project / admin-bundle / Resources / translations中 .
翻译任何其他标签 . 只有连接到doctrine_orm_class类型的那些不是 .
请给我一些解决这个问题的想法 . 谢谢 .
2 回答
SonataAdminBundle的翻译文件适用于"internal global"消息 .
您可以将您的翻译添加到您的默认文件中,该文件应位于Resources / translations / messages.pl.yml文件中以添加翻译 .
但推荐的方法是为一个包甚至一个管理文件创建一个单独的文件:https://sonata-project.org/bundles/admin/2-3/doc/reference/getting_started.html#step-3-create-an-admin-service
使用TranslationDomain,您可以添加一个全局文件,例如"YourBundle.pl.yml"或"MyAdmin.pl.yml":
当我升级包时,发生了丢失的翻译 . 我升级到SonataAdminBundle 2.3.3,但我不太确定这是解决方案 . 然而,我无法重复这个问题 .