【问题标题】:TYPO3 link always resolve to default languageTYPO3 链接始终解析为默认语言
【发布时间】:2020-07-30 15:50:30
【问题描述】:

我最近从 TYPO3 版本升级。 8.x 到版本。 9.x,我目前正在运行9.5.20

我们有 3 种语言的设置:DE(默认)、FR、IT

自更新以来,无论您当前使用哪种语言,每个错字链接都会指向默认语言。

错字链接存储在数据库中,如下所示: <a href="t3://page?uid=686">...

一些可能有助于缩小问题范围的随机花絮

  • 404 页面可以正常工作,并且始终以正确的语言显示
  • 唯一正常工作的链接是博客扩展使用的链接

这里有一些配置可能有助于解决问题

config.yaml 文件

additionalGetParams: ''
base: /
baseVariants:
  -
    base: 'https://www.example.com/'
    condition: 'applicationContext == "Production"'
  -
    base: 'https://www.example.com/'
    condition: 'applicationContext == "Development"'
connectTimeout: 0
debugErrorPageRequestException: false
disableCertificateVerification: false
disableStatisticsRecording: false
errorHandling:
  -
    errorCode: '404'
    errorHandler: Page
    errorContentSource: 't3://page?uid=141'
forceLanguage: -1
languages:
  -
    title: German
    enabled: true
    base: /de/
    typo3Language: de
    locale: de_DE.UTF-8
    iso-639-1: de
    navigationTitle: Deutsch
    hreflang: de-DE
    direction: ltr
    flag: at
    languageId: '0'
  -
    title: English
    enabled: true
    base: /en/
    typo3Language: default
    locale: en_CH.UTF-8
    iso-639-1: en
    navigationTitle: English
    hreflang: ''
    direction: ''
    fallbackType: strict
    fallbacks: '1,0,2,3'
    flag: en-us-gb
    languageId: '1'
  -
    title: French
    enabled: true
    base: /fr/
    typo3Language: fr
    locale: fr_CH.UTF-8
    iso-639-1: fr
    navigationTitle: French
    hreflang: fr-CH
    direction: ''
    fallbackType: strict
    fallbacks: ''
    flag: fr
    languageId: '2'
  -
    title: Italian
    enabled: true
    base: /it/
    typo3Language: it
    locale: it_CH.UTF-8
    iso-639-1: it
    navigationTitle: Italiano
    hreflang: it-CH
    direction: ltr
    fallbackType: strict
    fallbacks: ''
    flag: it
    languageId: '3'
passAuthinfoToInsecureConnections: false
passthroughContentTypeHeader: false
requestTimeout: 0
rootPageId: 21
routes: {  }
trustInsecureIncomingConnections: false

setup.typoscript

    config {
        // Language Settings
        sys_language_overlay = 0
        sys_language_mode = content_fallback
        language = de
        locale_all = de_CH.UTF-8
        htmlTag_setParams = lang="de-CH" dir="ltr" class="no-js"
        sys_language_uid = 0
        language = de
        defaultGetVars {
            L = 0
        }
[globalVar = GP:L = 1]
    config {
        sys_language_uid = 1
        language = en
        locale_all = en_GB.UTF-8
        htmlTag_setParams = lang="en" dir="ltr" class="no-js"
    }

[global]

[globalVar = GP:L = 2]
    config {
        sys_language_uid = 2
        language = fr
        locale_all = fr_FR.UTF-8
        htmlTag_setParams = lang="fr-CH" dir="ltr" class="no-js"
    }

[global]
[globalVar = GP:L = 3]
    config {
        sys_language_uid = 3
        language = it
        locale_all = it_IT.UTF-8
        htmlTag_setParams = lang="it-ch" dir="ltr" class="no-js"
    }

    
[global]

任何帮助或提示将不胜感激。

【问题讨论】:

  • 我会从 yaml 文件中删除所有核心未提供的选项(forceLanguagerequestTimeout 等)。 TypoScript 可以完全删除,因为它是通过站点管理完成的。

标签: typo3 typo3-9.x


【解决方案1】:

我认为 TypoScript 条件像

[globalVar = GP:L = 1]

从 TYPO3 9 开始不再工作。

你能试试新的语法吗

[siteLanguage("languageId") == "1"]

https://docs.typo3.org/m/typo3/reference-coreapi/master/en-us/ApiOverview/SiteHandling/UseSiteInConditions.html#sitehandling-inconditions

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2021-05-16
    相关资源
    最近更新 更多