TYPO3:如何使用流畅的模板处理多语言支持

TYPO3: How to handle multi language support with fluid templates

我正在处理一个支持多语言的页面。我已经设法让它与 realurl 和后端一起工作。

现在我不太确定如何从后端呈现翻译后的文本。

例如:我有一个默认语言 (en) 的页面,标题为 "Contact"。现在我已经创建了一个德语翻译,标题为 "Kontakt"。

根据我的配置,我的 url 现在说:

但我使用流畅模板呈现的导航仍然显示默认语言,即使是德语 url。是否有 {page.title.currentLanguage} 之类的变量?

当然我可以在 locallang.xlf 文件中创建一个翻译,但为了使用 f:translate viewhelper,但这意味着我必须翻译页面名称两次,对吗?

感谢大家的帮助!

我当前用于呈现导航的部分:

<nav>
    <div class="container">
        <ul class="content btns">
            <f:for each="{mainnavigation}" as="mainnavigationItem">
                <li class="{f:if(condition: mainnavigationItem.active, then:'active')}">
                    <a href="{mainnavigationItem.link}" target="{mainnavigationItem.target}" title="{mainnavigationItem.title}">{mainnavigationItem.title}</a>
                    <f:if condition="{mainnavigationItem.children}">
                        <ul>
                            <f:for each="{mainnavigationItem.children}" as="child">
                                <li class="{f:if(condition: child.active, then:'active')}">
                                    <a href="{child.link}" target="{child.target}" title="{child.title}">{child.title}</a>
                                </li>
                            </f:for>
                        </ul>
                    </f:if>
                </li>
            </f:for>
        </ul>
    </div>
</nav>

我使用 typolink 来渲染我的 a 标签:

<f:link.typolink parameter="{item.data.uid}" target="{item.target}" title="{item.title}" class="menu-link">{item.title}</f:link.typolink>

我找到了我正在寻找的解决方案:

在设置常规本地化设置时,我从本地化文档中添加了一些 TypoScript configuration。我添加了以下几行:

# Localization:
config {
        linkVars = L(int)
        sys_language_uid = 0
        sys_language_overlay = 1
        sys_language_mode = content_fallback
        language = en
        locale_all = en_US.UTF-8
        htmlTag_setParams = lang="en" dir="ltr" class="no-js"
}
[globalVar = GP:L = 1]
        config {
                sys_language_uid = 1
                language = de
                locale_all = de_DE.UTF-8
                htmlTag_setParams = lang="de" dir="ltr" class="no-js"
        }
[global]
[globalVar = GP:L = 2]
        config {
                sys_language_uid = 2
                language = da
                locale_all = da_DK.UTF-8
                htmlTag_setParams = lang="da" dir="ltr" class="no-js"
        }
[global]

当然是使用我的语言 ID。这解决了我的问题,现在翻译后的页面标题出现在标题标签和我的导航中。

我猜 "sys_language_overlay = 1" 选项有这个目的。