1

我对 Typo3 9.4 有疑问(我不得不承认这是我尝试设置的第一个包含多种语言的 Typo3 9 页面):

如果所选语言中没有内容,我希望内容回退到默认语言。这是我的打字稿:

config {
        linkVars = L
        sys_language_uid = 0
        language = en
        locale_all = en_US.UTF-8
        sys_language_overlay = 1
        htmlTag_setParams = lang="en" dir="ltr" class="no-js en-selected"
}
[globalVar = GP:L = 1]
config {
        sys_language_uid = 1
        sys_language_mode = content_fallback;0
        language = de
        locale_all = de_DE.UTF-8
        htmlTag_setParams = lang="de" dir="ltr" class="no-js de-selected"
}
[global]
[globalVar = GP:L = 2]
config {
        sys_language_uid = 2
        sys_language_mode = content_fallback;0
        language = es
        locale_all = es_ES.UTF-8
        htmlTag_setParams = lang="es" dir="ltr" class="no-js es-selected"
}
[global]

这些语言在站点管理中也受到拒绝。这是生成的 config.yaml:

rootPageId: 1
base: /
baseVariants: {  }
languages:
  -
    languageId: '0'
    title: English
    navigationTitle: English
    base: /
    locale: en_US.UTF-8
    iso-639-1: en
    hreflang: en-US
    direction: ''
    typo3Language: default
    flag: global
    enabled: true
  -
    languageId: '1'
    title: Deutsch
    navigationTitle: Deutsch
    base: /de/
    locale: de_DE.UTF-8
    iso-639-1: de
    hreflang: de-DE
    direction: ''
    typo3Language: de
    flag: de
    fallbackType: fallback
    fallbacks: '0'
    enabled: true
  -
    languageId: '2'
    title: Spanisch
    navigationTitle: Spanisch
    base: /es/
    locale: es-ES.UTF-8
    iso-639-1: es
    hreflang: es-ES
    direction: ''
    typo3Language: default
    flag: es
    fallbackType: fallback
    fallbacks: '0'
    enabled: true
errorHandling: {  }
routes: {  }

我的主页有英文、德文和西班牙文的内容是空的。但是当我更改为德语时,页面上没有(英语)内容。有趣的是有两点:菜单是德语的,所以可以识别替代语言,但是在 html 源代码中,html-tag 看起来像这样:

<html lang="en" dir="ltr" class="no-js en-selected"> 

但这被定义为默认值。我认为,条件没有任何影响。任何想法我的思维或编码有什么问题?

4

2 回答 2

1

我只是将我的网站从 8.7.x 升级到 9.5.x。据我了解,您根本不需要 TypoScript 部分。语言回退的所有设置都在站点配置中完成。TYPO3 9.5.x(我只尝试过这些版本)中仍然有两个与语言回退有关的错误:

  • 内容元素的后备不起作用:当您更改为西班牙语/德语页面(参考您的语言设置)时,已经存在没有本地化(西班牙语/德语)内容元素的本地化页面,您将不会获得符合预期的英文内容元素。您必须应用错误修复。请参阅此处的相关问题和此处错误修复
  • 通过您的站点设置,您还将受到另一个错误的影响,当没有德语/西班牙语的本地化页面时会发生这种错误。当您选择德语/西班牙语作为语言并单击指向没有德语/西班牙语本地化页面元素的页面的链接时,您将收到 404 错误,而不是预期的英语页面内容。据我所知,没有针对此问题的错误修复。这个错误修复对我不起作用。希望很快会有针对此问题的错误修复。只要没有错误修复,一个解决方案就是为每个页面和语言创建本地化页面。另一种选择是为所有受影响的页面创建静态路由,例如,路由:de/english-slug-of-page,类型:uri,来源:https://yoursite/english-slug-of-page. 第二种解决方案的缺点是它也会将所选语言更改为英语。当您的网站有很多未翻译的页面时,这两个选项都不是很方便。与此错误相关的问题请参见此处
于 2019-01-30T08:07:00.073 回答
0

Typo3 9.5 不再支持 Linkvar L,因此您需要将您的条件从

[globalVar = GP:L = 2]

#condition on localE in site management language tab
[siteLanguage = locale = de_DE.UTF-8]

站点管理 yaml 文件看起来不错

于 2019-01-21T09:42:04.423 回答