0

我正在使用 ModX 构建一个多语言网站,所以我额外安装了 Babel,一切似乎都运行良好。

我现在想知道如何处理我的模板,我无法想出一个解决方案来为不同语言的页面使用相同的模板(这将是理想的,没有代码重复)。

事实上,考虑一下我的模板中的这段代码,它在侧边栏中列出了帖子:

   <h3>Archives</h3>
   <ul>
     [[!Archivist? &target=`7` &parents=`3,4`]]
   </ul>

target=7parents=3,4参考英文资源,所以我显然不能在我的中文资源模板中使用此代码。我能想到的唯一解决方法是为每种语言设置不同的模板。这是正确的方法吗?

4

2 回答 2

2

您可以在语言环境中创建系统设置。[单击资源树中的上下文并转到设置。] 然后您可以像使用系统设置一样使用这些:

[[!Archivist? &target=`[[++system_setting_1]]` &parents=`[[++system_setting_2]]`]]

至于

档案

- 您可以使用这些词汇设置或检测上下文:

[[*context_key:is=`French`:then=`Archiv`:else=`Archives`]]
于 2014-01-23T05:17:43.370 回答
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>

肖恩关于上下文设置的上述建议是为您的片段提供上下文特定参数的正确方法。

于 2014-01-23T09:11:52.813 回答