2013-05-06 74 views
0

如何在actions.xml中使用/翻译(url_expr/available_expr)?如何翻译i18n Plone actions.xml

我通常的方法是使每种语言一个单独的“对象”:

<object name="contact" meta_type="CMF Action" i18n:domain="my.theme"> 
<property name="title" i18n:translate="">Contact</property> 
<property name="description" i18n:translate=""></property> 
<property 
    name="url_expr">string:${globals_view/navigationRootUrl}/contact</property> 
<property name="icon_expr"></property> 
<property name="available_expr">python:request.LANGUAGE == 'en'</property> 
</object> 

<object name="contact-de" meta_type="CMF Action" i18n:domain="my.theme"> 
<property name="title" i18n:translate="">Contact</property> 
<property name="description" i18n:translate=""></property> 
<property 
    name="url_expr">string:${globals_view/navigationRootUrl}/kontakt</property> 
<property name="icon_expr"></property> 
<property name="available_expr">python:request.LANGUAGE == 'de'</property> 
</object> 
+0

您是否安装了LinguaPlone来处理'contact'和'kontakt'之间的转换? – 2013-05-06 15:44:14

+0

是的,Products.LinguaPlone 4.0.4带语言文件夹 (de/en) – user966660 2013-05-07 06:20:50

回答

0

如果您contact/kontakt内容多语言内容由LinguaPlone管理,您可以使用takeaction add-on创建一个行动这将根据需要在翻译之间切换。

takeaction有它自己的配置文件,就像actions.xml它是一个通用的安装文件:

<?xml version="1.0"?> 
<object name="portal_takeaction" 
    meta_type="TakeAction content-as-actions tool"> 
    <item category="site_actions" path="en/contact" /> 
</object> 

以上配置在en/contact为内容对象作为site_actions行动项目。它将被列在该操作类别中,并将内容对象的翻译之一的标题和描述与当前语言匹配。

你做不是列出行动actions.xml了; takeaction工具本身就是一个行动提供者。

免责声明:我是takeaction的原始作者。