Typo3 9.x: Многоязычность - не работает резервный контент? - PullRequest
0 голосов
/ 26 сентября 2018

У меня проблема с Typo3 9.4 (и я должен признать, что это первая страница Typo3 9 с несколькими языками, которые я пытаюсь настроить):

Я хочу иметь запасной вариант содержимогоязык по умолчанию, если на выбранном языке нет содержимого.Это мой TypoScript:

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: {  }

Моя домашняя страница содержит контент на английском, немецком и spanisch пустые.Но когда я перехожу на немецкий, у меня нет (английского) контента на странице.Интересны два пункта: меню на немецком языке, поэтому распознается альтернативный язык, но в исходном коде html тег html выглядит так:

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

Но это было определено по умолчанию.Я думаю, что состояние не имеет никакого эффекта.Любая идея, что не так в моем мышлении или кодировании?

Ответы [ 2 ]

0 голосов
/ 30 января 2019

Я просто обновляю свой сайт с 8.7.x до 9.5.x.Насколько я понимаю, вам вообще не нужна ваша часть TypoScript.Все настройки для языкового отката выполняются в рамках конфигурации сайта.В TYPO3 9.5.x все еще есть две ошибки (я только пробовал эти версии), связанные с языковым отступлением:

  • Откат для элементов содержимого не работает: при переходе на испанскую / немецкую страницу (ссылаясь на настройки вашего языка), для которых уже существует локализованная страница без локализованных (испанских / немецких) элементов содержимого, вы не получите вывод элементов содержимого на английском языке, как ожидалось.Вы должны применить исправление ошибки.См. Связанную проблему здесь и исправление здесь.
  • При настройке вашего сайта вы также будете подвержены другой ошибке, которая возникает, когда локализованной страницы уже нетдля немецкого / испанского.Если вы выбрали немецкий / испанский в качестве языка и нажали на ссылку, которая ведет на страницу без локализованного элемента страницы на немецком / испанском языках, вы получите ошибку 404, а не содержание английской страницы, как ожидалось.Насколько я знаю, нет исправления для этой проблемы, которая работает. Это исправление не сработало для меня.Надеюсь, скоро появится исправление этой проблемы.Пока нет исправления ошибок, одним из решений является создание локализованных страниц для каждой страницы и языка.Другой вариант - создать статические маршруты для всех затронутых страниц, например, route: de / english-slug-of-page, тип: uri, source: https://yoursite/english-slug-of-page. Недостатком второго решения является то, что оно будетизмените выбранный язык на английский тоже.Оба варианта не очень удобны, когда на вашем сайте довольно много непереведенных страниц.Связанный вопрос с этой ошибкой см. здесь .
0 голосов
/ 21 января 2019

Linkvar L больше не поддерживается в typo3 9.5, поэтому вам нужно изменить свое состояние с

[globalVar = GP:L = 2]

на

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

. Файлы yaml для управления сайтом выглядят нормально

...