SilverStripe 循环遍历某些语言环境子页面
SilverStripe loop over certain locale children pages
我在我的网站上使用 SilverStripe Translatable
and Translatable-DataObject
模块进行翻译。
我想在非默认语言环境中遍历某些语言环境页面子项(例如,我有 3 个语言环境,假设有 EN、RU 和 LV)。
我有这段代码:
<% loop $Children %>
$Master.Title
<% end_loop %>
问题出在 <% loop $Children %>
。如果我像这样循环它 <% loop $Master.Children %> 它不会带来任何东西。
我应该如何迭代非默认语言环境中的某些语言环境页面子项?
假设您正在循环访问 Pages,您可以尝试使用 Translatable 的 getTranslation($locale, $stage) 方法来获取您的 'master' 语言。您必须在模板中对语言环境进行硬编码。 (以下代码未经测试):
<% loop $Children %>
<% with $Translation('de_DE') %> <%-- grabs the german translation and uses it --%>
$Title
<% end_with %>
<% end_loop %>
作为替代方案,您可以在您的 Controller 子类或 Controller Extension 中编写您自己的 getter,具有更多逻辑以满足您的需要。
我在我的网站上使用 SilverStripe Translatable
and Translatable-DataObject
模块进行翻译。
我想在非默认语言环境中遍历某些语言环境页面子项(例如,我有 3 个语言环境,假设有 EN、RU 和 LV)。
我有这段代码:
<% loop $Children %>
$Master.Title
<% end_loop %>
问题出在 <% loop $Children %>
。如果我像这样循环它 <% loop $Master.Children %> 它不会带来任何东西。
我应该如何迭代非默认语言环境中的某些语言环境页面子项?
假设您正在循环访问 Pages,您可以尝试使用 Translatable 的 getTranslation($locale, $stage) 方法来获取您的 'master' 语言。您必须在模板中对语言环境进行硬编码。 (以下代码未经测试):
<% loop $Children %>
<% with $Translation('de_DE') %> <%-- grabs the german translation and uses it --%>
$Title
<% end_with %>
<% end_loop %>
作为替代方案,您可以在您的 Controller 子类或 Controller Extension 中编写您自己的 getter,具有更多逻辑以满足您的需要。