翻译
编辑该页面翻译
有两种主要的翻译领域一个管理类:
SonataAdminBundle
:这个域是用来翻译共享信息在不同的管理员消息
:该域用于翻译当前管理员的消息
理想情况下,消息
域应该改变,以避免任何问题与其他管理类。
您可以配置管理类的翻译领域通过容器注入价值:
1 2 3 4 5 6 7 8
< !——配置/服务。xml - - ><服务id=“sonata.page.admin.page”类=”奏鸣曲\ PageBundle \ Admin \ PageAdmin”><标签的名字=“sonata.admin”model_class=“应用程序\ \奏鸣曲\ PageBundle \实体页面”manager_type=“orm”集团=“sonata_page”标签=“页面”/ ><调用方法=“setTranslationDomain”><论点>SonataPageBundle< /论点>< /调用>< /服务>
管理实例总是翻译
实例,因此它可以用来在翻译信息configureFields
法或模板。
1 2 3 4 5 6 7 8
{#古典调用使用树枝反式辅助#}{{“message_create_snapshots”|反式({},SonataPageBundle)}}{#用硬编码翻译领域使用管理反式方法#}{{“message_create_snapshots”|反式({},SonataPageBundle)}}{#通过使用管理反式配置翻译领域#}{{“message_create_snapshots”|反式({},admin.translationdomain)}}
最后的解决方案是最灵活的,因为没有翻译参数是硬编码的,推荐使用。
将字段标签
管理包有一个定制的表单字段模板。最引人注目的变化从原来的一个是翻译领域的使用提供的管理实例或字段描述翻译标签。
压倒一切的翻译领域
翻译领域可以覆盖在形成团体或个人领域的水平。
如果翻译领域设置在集团层面会级联到组内的所有字段。
压倒一切的翻译领域特定的使用在使用自定义管理,扩展和翻译将在一个包中定义,但在许多不同的管理实现实例。
在单个字段设置翻译领域:
1 2 3 4 5 6 7 8 9
使用ob娱乐下载\组件\形式\扩展\核心\类型\CheckboxType;美元形式- >(“form.my_group”)- >add (“发表”,CheckboxType::类,[],[“translation_domain”= >“MyTranslationDomain”,)- >结束();
下面的示例设置默认翻译领域形成集团和越权,设置一个字段:
1 2 3 4 5 6 7 8 9 10 11
使用ob娱乐下载\组件\形式\扩展\核心\类型\CheckboxType;使用ob娱乐下载\组件\形式\扩展\核心\类型\DateType;美元形式- >(“form.my_group”,(“translation_domain”= >“MyDomain”])- >add (“发表”,CheckboxType::类,[],[“translation_domain”= >“AnotherDomain”,)- >add (“start_date”,DateType::类、[][])- >结束();
翻译也可以禁用特定字段的设置translation_domain
来假
。
设置标签名称
默认情况下,标签设置为净化版本的字段名。可以被定义为一个自定义标签的第三个参数添加
方法:
1 2 3 4 5 6 7 8 9 10 11 12 13 14
/ / src / Admin / PageAdmin.php最后类PageAdmin扩展AbstractAdmin{受保护的函数configureFormFields(FormMapper美元形式):无效{美元形式- >add (是否是可用的,零,(“要求”= >假,“标签”= >“label.is_valid”]);}}
品牌策略
快速原型的另一个选择或避免花太多时间添加标签
所有的关键选项字段:品牌策略。在默认情况下生成的标签使用以下规则:
isValid = >是有效的
的AdminBundle
有不同的密钥标签生成策略:
-
-
sonata.admin.label.strategy.native
:默认——使人类可读的字符串 -
isValid
= >是有效的
-
-
-
sonata.admin.label.strategy.form_component
:默认行为从表单组件 -
isValid
= >Isvalid
-
sonata.admin.label.strategy.underscore
:改变了名称到一个令牌适合翻译通过将“形式。标签”凸显了版本的字段名isValid
= >form.label_is_valid
-
-
sonata.admin.label.strategy.noop
:不改变字符串 -
isValid
= >isValid
-
sonata.admin.label.strategy.underscore
会更好的国际化应用程序和吗sonata.admin.label.strategy.native
将更好地为本地(单一)语言应用程序基于字段名。它是合理的开始本机
策略,然后,当应用程序需要翻译使用通用键,可以切换到配置下划线
。
策略可以快速配置管理类注册时的容器:
1 2 3 4 5 6 7 8 9 10 11 12
< !——配置/服务。xml - - ><服务id=“app.admin.project”类=“应用程序\ Admin \ ProjectAdmin”><标签的名字=“sonata.admin”model_class=“应用程序实体\ \项目”manager_type=“orm”集团=“项目”标签=“项目”label_translator_strategy=“sonata.admin.label.strategy.native”/ >< /服务>
请注意
在所有情况下都将使用的标签翻译
。策略是一个快速的方法来生成可翻译键。这一切都取决于项目的需求。
请注意
策略方法被调用时,上下文
(面包屑,datagrid,过滤器,形式,列表,显示,等等)类型
(通常是链接或标签)参数传递。例如,调用可能看起来像:getLabel (label_key美元,“面包屑”,“链接”)