【问题标题】:How to set up Variants for Entry Points of additional languages in TYPO3如何在 TYPO3 中为其他语言的入口点设置变体
【发布时间】:2019-07-18 01:23:04
【问题描述】:

该项目的最终领域将是:

  1. www.domain.com(英语,主要语言,L=0)
  2. www.domain.de(德语,L=1)

开发/预览域是

  1. dev.domain.com
  2. dev.domain.de

可以在站点配置的“常规”选项卡中为主要的“入口点”创建一个变体: 基地:https://dev.domain.com/ 条件:applicationContext == "开发"

但是如何设置第二语言(德语)的变体?

【问题讨论】:

    标签: typo3 typo3-9.x


    【解决方案1】:

    由于 TYPO3 v9.5.5 baseVariants 可以直接在 yaml 中添加用于站点语言的“base”值,与站点中默认的“base”属性相同。

    【讨论】:

    • 哇,谢谢,太好了!我刚试过,它就像一个魅力。但是要记住一件事:如果您之后通过站点管理器编辑某些内容(例如,如果您编辑错误处理)而不发出警告,它将被覆盖。出于这个原因,我会暂时保留 Mikel 的解决方案。
    • 对此,your issue 87831Issue 86400 相关。在这种情况下,我不确定是否应该添加与“已解决”问题的关系。只是想让你知道:-)
    【解决方案2】:

    只要您不需要其他特定于语言的配置,您就可以在您的 apache 配置中设置环境变量并在您的站点配置中读取它们。这是官方支持的(见here

    网站配置:

    base: 'https://%env(BASE_DOMAIN)%/'
    languages:
      -
        base: 'https://%env(BASE_DOMAIN_DE)%/'
    

    Apache 配置(示例):

    SetEnvIf Host ".*" TYPO3_CONTEXT=Production
    SetEnvIf Host ".*" BASE_DOMAIN=www.domain.com
    SetEnvIf Host ".*" BASE_DOMAIN_DE=www.domain.de
    SetEnvIf Host "dev.domain.com" TYPO3_CONTEXT=Development
    SetEnvIf Host "dev.domain.com" BASE_DOMAIN=dev.domain.com
    SetEnvIf Host "dev.domain.de" TYPO3_CONTEXT=Development
    SetEnvIf Host "dev.domain.de" BASE_DOMAIN_DE=dev.domain.de
    

    【讨论】:

    • 这就是我想要的,谢谢! Apache config con 缩短了两行(生产是默认的,不需要 .domain.com,因为它从不包含“dev”):SetEnvIf Host ".*" BASE_DOMAIN=www.domain.comSetEnvIf Host ".*" BASE_DOMAIN_DE=www.domain.deSetEnvIf Host "dev" TYPO3_CONTEXT=DevelopmentSetEnvIf Host "dev" BASE_DOMAIN=dev.domain.comSetEnvIf Host "dev" BASE_DOMAIN_DE=dev.domain.de
    • 在 10.4.2 中缓存:forge.typo3.org/issues/91443
    【解决方案3】:

    这还不可能。相关问题可以在https://forge.typo3.org/issues/86400查看。

    同时我会通过使用不同的config.yml 文件来解决这个问题。

    【讨论】:

      猜你喜欢
      • 2011-07-06
      • 2023-03-03
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2022-10-20
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多