如何在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>
答案 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
的原作者。