如何翻译i18n Plone actions.xml

时间:2013-05-06 13:48:18

标签: internationalization plone

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

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

<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>

1 个答案:

答案 0 :(得分: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的原作者。