如何使用语言的多树概念设置 TYPO3 9.5.x

How to setup TYPO3 9.5.x with a multiple-trees concept for languages

对于一个新网站,我必须设置多语言 TYPO3 9.5。我已经为以前的版本完成了此操作,但不适用于 9.5 版。现在已经搜索了几天,没有任何结果。所有解决方案均适用于较旧的 TYPO3 或一棵树概念。

该网站的结构如下:

URL的:
- https://domain.tld/nl/
- https://domain.tld/nl/algemeen/
- https://domain.tld/nl/contact/
- https://domain.tld/de/
- https://domain.tld/de/allgemeine-info/
- https://domain.tld/de/kontakt/

主页和 DE 部分是包含所有 TypoScript 设置的页面。
我不想翻译页面。当您转到 /nl/ 时,所有内容都是荷兰语,您在荷兰语页面树中;当您转到 /de/ 时,所有内容都是德语,您在德语页面树中。

在不久的将来必须从 TYPO3 8.7 迁移到 9.5 的其他网站使用相同类型的网站结构。

我已经设置了一个新网站并通过站点管理 -> 站点配置了该网站。
根页面 ID 设置为 "Homepage".
在“语言”选项卡中,我有默认语言荷兰语 (NL),基数为 /nl/.
和底数为 /de/.
的德语 (DE) 目前没有设置错误处理和静态路由。

我添加了来自另一个网站的扩展程序,其中包含基于流体页面和通量的 FLUID 模板。

我已尝试在 /nl//de/ 上通过 TypoScript(设置)设置语言。 但它被忽略了。我想那是因为 TYPO3 9.5.
荷兰:

config {
  language = nl
  locale_all = nl_NL.utf8
  sys_language_uid = 0
}

德国:

config {
  language = de
  locale_all = de_DE.utf8
  sys_language_uid = 1
}

在此设置中 https://domain.tld/de/allgemeine-info/ 的标准 slug 是 https://domain.tld/de/de/allgemeine-info/。当我手动设置 slug 时,我可以获得我想要的东西..有点,但是你必须为每个页面设置 slug。 而且我还可以调用 https://domain.tld/de/nl/algemeen/https://domain.tld/nl/de/allgemeine-info/ 这不行。

有没有办法只通过 TypoScript 而不是通过站点管理来设置语言,这样我就可以创建一个多树网站?

我希望有人能在正确的方向上帮助我。

谢谢!

您可以通过创建两个单独的站点来实现此方案,每个站点对应一种语言:

在您的示例中,您将在两种语言的根页面的页面属性中勾选复选框 "Use as Root Page":

  • NL(包含荷兰语内容的主页)
  • DE(包含德语内容的主页)

然后创建两个站点配置。

对于荷兰语:

rootPageId: <ID of NL page>
base: 'https://www.domain.tld/nl/'
baseVariants: {  }
languages:
  -
    title: Dutch
    enabled: true
    languageId: '0'
    base: /
    typo3Language: nl
    locale: nl_NL.utf8
    iso-639-1: nl
    navigationTitle: Dutch
    hreflang: nl-NL
    direction: ltr
    flag: nl
errorHandling: {  }
routes: {  }

对于德语:

rootPageId: <ID of DE page>
base: 'https://www.domain.tld/en/'
baseVariants: {  }
languages:
  -
    title: English
    enabled: true
    languageId: '0'
    base: /
    typo3Language: default
    locale: en_US.utf8
    iso-639-1: en
    navigationTitle: English
    hreflang: en-US
    direction: ltr
    flag: us
errorHandling: {  }
routes: {  }

使用此设置,您不需要网站语言记录,因为两棵树都将使用默认语言 0。

您可能需要为根域添加第三个站点,将用户重定向到 /nl pagetree。除了页面 ID 和 base 设置不同外,设置与荷兰语版本相同。