【问题标题】:How to setup TYPO3 9.5.x with a multiple-trees concept for languages如何使用语言的多树概念设置 TYPO3 9.5.x
【发布时间】:2019-09-07 09:35:49
【问题描述】:

对于一个新网站,我必须设置多种语言 TYPO3 9.5。我已经为以前的版本做到了这一点,但不要让它与 9.5 版一起使用。现在已经找了几天了,没有任何结果。所有解决方案都适用于较旧的 TYPO3 或一棵树概念。

网站的结构如下:

  • 主页(重定向到 NL)
    • NL(包含荷兰语内容的主页)
      • 阿尔赫梅恩
      • 联系方式
      • ...
    • DE(包含德语内容的主页)
      • 综合信息
      • 联系
      • ...

网址:
- 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。
荷兰:

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 而不是通过站点管理来设置语言,这样我就可以创建一个多树网站?

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

谢谢!

【问题讨论】:

    标签: typo3 typoscript typo3-9.x


    【解决方案1】:

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

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

    • 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 设置不同。

    【讨论】:

    • 非常感谢 Alex,还没有考虑过这个选项。我要试试这个。
    猜你喜欢
    • 2019-05-06
    • 1970-01-01
    • 2019-07-18
    • 2019-09-30
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2019-04-12
    • 1970-01-01
    相关资源
    最近更新 更多