在 TYPO3 中切换语言环境,"live",在一页上
Switch Locales in TYPO3, "live", on one page
在 上,我了解到您可以在 php 实时切换语言环境,在一次 php 通话中。
例如,像这样:
$locale_old = setlocale(LC_TIME, 0);
setlocale(LC_TIME, 'fr_CH');
// do something
setlocale(LC_TIME, $locale_old);
TYPO3 呢?我在一个页面上有不同的日期,应该根据它们所在的内容元素以不同的语言显示。
由于呈现日期的语言环境是全局设置的,因此无法使用这两个 TypoScript 设置来完成:
config.locale_all = de_CH
config.locale_all = fr_CH
这有可能吗?如何实现?
这对于 TypoScript
是不可能的,因为 TypoScript
不是逐行执行的,而是解析成一个配置树,然后传递给 FrontendController
(技术上呼叫顺序是相反的,但不要试图在这里进入 TYPO3 的内在魔力。
所以你要么需要定义你自己的包装脚本,你可以在需要的地方用 stdWrap
方法调用,要么你切换到 Fluid
模板并创建一个 viewhelper
为您切换。在此 viewhelper
中,您可以使用问题中提到的代码。
TypoScript
设置全局执行 setlocale()
。当然,您可以在执行自己的 PHP 代码时切换它。这意味着您可以在 Controller
或 View
.
中切换设置(即使在 FrontendController
中)
在
例如,像这样:
$locale_old = setlocale(LC_TIME, 0);
setlocale(LC_TIME, 'fr_CH');
// do something
setlocale(LC_TIME, $locale_old);
TYPO3 呢?我在一个页面上有不同的日期,应该根据它们所在的内容元素以不同的语言显示。
由于呈现日期的语言环境是全局设置的,因此无法使用这两个 TypoScript 设置来完成:
config.locale_all = de_CH
config.locale_all = fr_CH
这有可能吗?如何实现?
这对于 TypoScript
是不可能的,因为 TypoScript
不是逐行执行的,而是解析成一个配置树,然后传递给 FrontendController
(技术上呼叫顺序是相反的,但不要试图在这里进入 TYPO3 的内在魔力。
所以你要么需要定义你自己的包装脚本,你可以在需要的地方用 stdWrap
方法调用,要么你切换到 Fluid
模板并创建一个 viewhelper
为您切换。在此 viewhelper
中,您可以使用问题中提到的代码。
TypoScript
设置全局执行 setlocale()
。当然,您可以在执行自己的 PHP 代码时切换它。这意味着您可以在 Controller
或 View
.
FrontendController
中)