我正在使用SilverStripe Translatable
和Translatable-DataObject
模块在我的网站上进行翻译。
我想在非默认语言环境中循环某些语言环境页面子项(例如,我有3个语言环境,假设有EN,RU和LV)。
我有这段代码:
<% loop $Children %>
$Master.Title
<% end_loop %>
问题在于<% loop $Children %>
。如果我像这样循环它&lt;%loop $ Master.Children%&gt;它没带任何东西。
如何在非默认语言环境中迭代某些语言环境页面子项?
答案 0 :(得分:2)
假设您正在遍历Pages,您可以尝试使用Translatable的getTranslation($locale, $stage)方法来获取“主”语言。您必须在模板中对区域设置进行硬编码。 (以下代码未经测试):
<% loop $Children %>
<% with $Translation('de_DE') %> <%-- grabs the german translation and uses it --%>
$Title
<% end_with %>
<% end_loop %>
作为替代方案,您可以在Controller子类或Controller Extension中编写自己的getter,并提供更多逻辑以满足您的需求。