我正在使用ModX构建一个多语言网站,所以我安装了Babel extra,看起来工作正常。
我现在想知道如何处理我的模板,我无法想出一个解决方案,为不同语言的页面使用相同的模板(理想,没有代码重复)。
确实,请在我的模板中考虑此代码,其中列出了侧边栏中的帖子:
<h3>Archives</h3>
<ul>
[[!Archivist? &target=`7` &parents=`3,4`]]
</ul>
target=7
和parents=3,4
引用英文资源,所以我显然不能在我的模板中使用此代码来获取中文资源。我能想到的唯一解决方法是为每种语言设置不同的模板。这是正确的方法吗?
答案 0 :(得分:2)
您可以在语言环境中创建系统设置。 [单击资源树中的上下文&amp;转到设置。]然后您可以像系统设置一样使用这些设置:
[[!Archivist? &target=`[[++system_setting_1]]` &parents=`[[++system_setting_2]]`]]
至于
[[*context_key:is=`French`:then=`Archiv`:else=`Archives`]]
答案 1 :(得分:2)
这正是词典的用途。阅读此处的文档:http://rtfm.modx.com/revolution/2.x/developing-in-modx/advanced-development/internationalization
以每种语言添加您需要的词典,然后按照以下步骤在模板中实现:
<h3>[[%archives?
&topic=`mytopic`
&namespace=`mynamespace`
&language=`[[++cultureKey]]`
]]
</h3>
<ul>
[[!Archivist? &target=`7` &parents=`3,4`]]
</ul>
Sean关于上下文设置的上述建议是为您的代码段提供特定于上下文的参数的正确方法。