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

时间:2019-04-17 07:47:11

标签: typo3 typoscript typo3-9.x

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

网站的结构如下:

  • 首页(重定向至NL)
    • NL(包含荷兰语内容的首页)
      • Algemeen
      • 联系
      • ...
    • DE(具有德语内容的主页)
      • 全能食品信息
      • Kontakt
      • ...

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。
在“语言”选项卡中,我具有默认语言荷兰语(NL),其基础为/nl/
还有以/de/为底的德语(DE)。
目前未设置错误处理和静态路由。

我已经添加了另一个网站的扩展,该扩展具有基于流体页面和通量的FLUID模板。

我尝试通过/nl//de/上的TypoScript(设置)设置语言。 但是它被忽略了。我猜是因为TYPO3 9.5。
NL:

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

DE:

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

在此设置中,标准https://domain.tld/de/allgemeine-info/的子段是https://domain.tld/de/de/allgemeine-info/。当我手动设置子弹时,我可以得到我想要的..但​​是,然后您必须为每个页面设置子弹。 而且我也可以打电话给https://domain.tld/de/nl/algemeen/https://domain.tld/nl/de/allgemeine-info/

是否可以仅通过TypoScript而不是通过站点管理来设置语言,所以我可以创建多树网站?

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

谢谢!

1 个答案:

答案 0 :(得分:0)

您可以通过创建两个单独的站点来实现这种情况,每种语言一个站点:

在您的示例中,您将在两种语言的根页面的页面属性中选中“用作根页面”复选框:

  • 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页面树。除了页面ID和base设置不同之外,其他设置与荷兰版本相同。