Typo3 9.x: многоязычный - резервное копирование содержимого не работает?

У меня проблема с 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: {  }

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

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

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


person A.Tietz    schedule 26.09.2018    source источник


Ответы (2)


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

  • Резервное копирование для элементов содержимого не работает: при переходе на испанскую / немецкую страницу (в соответствии с настройками вашего языка), для которой уже существует локализованная страница без локализованных (испанский / немецкий) элементов содержимого, вы не получите вывод Элементы содержания на английском языке, как и ожидалось. Вы должны применить исправление ошибки. См. Соответствующую проблему здесь и bugfix здесь.
  • При настройке вашего сайта вы также столкнетесь с другой ошибкой, которая возникает, когда еще нет локализованной страницы для немецкого / испанского языков. Если вы выбрали немецкий / испанский в качестве языка и щелкнете ссылку, которая ведет на страницу без локализованного элемента страницы на немецком / испанском, вы получите ошибку 404, а не содержимое английской страницы, как ожидалось. Насколько мне известно, исправления этой проблемы нет. Это исправление не помогло мне. Надеюсь, в ближайшее время для этой проблемы будет исправлена ​​ошибка. Пока нет исправления, одним из решений является создание локализованных страниц для каждой страницы и языка. Другой вариант - создать статические маршруты для всех затронутых страниц, например route: de / english-slug-of-page, type: uri, source: https://yoursite/english-slug-of-page. Недостатком второго решения является то, что он также изменит выбранный язык на английский. Оба варианта не очень удобны, когда на вашем сайте довольно много непереведенных страниц. Связанный с этой ошибкой вопрос см. здесь.
person Wolfgang Kleinbach    schedule 30.01.2019
comment
Я отправил патч, который должен исправить проблему с ошибкой 404 для отсутствующих переводов, несмотря на резервный вариант конфигурации forge.typo3. org / issues / 86595 - person Euli; 09.02.2019
comment
@KevinDitscheid, только что протестировал ваш патч, и он работает на моей установке (TYPO3 9.5.4) вместе с исправлением ошибки для отката CE. Спасибо за исправление! Надеюсь, оба исправления будут включены в следующую версию TYPO3! - person Wolfgang Kleinbach; 11.02.2019

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

[globalVar = GP:L = 2]

to

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

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

person Bharat Parmar    schedule 21.01.2019