在 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 代码时切换它。这意味着您可以在 ControllerView.

中切换设置(即使在 FrontendController 中)