TYPO3 9.5.2 Slug: многоязычный: страница не найдена 404 исключение, если не существует перевода страницы - PullRequest
0 голосов
/ 13 декабря 2018

У меня есть веб-сайт с двумя языками, например, de и en.De - мой язык по умолчанию без префикса пути.En, второй язык, имеет / en / в качестве префикса в URL.Теперь, когда я переключаюсь на язык en, ссылки на пункты меню имеют / en / в URL, что нормально.Но когда я нажимаю на пункт меню, который явно не переведен в бэкэнд, я получаю ошибку 404.Я не могу сказать, что это неправильное поведение, потому что до того, как я его создаю, нет страницы с таким путем.Но что мне делать?Создайте перевод для каждой страницы, что бесполезно, если уже есть сотни страниц.Не существует ли откат (не откат контента, откат страницы)?

конфигурация сайта

rootPageId: 2
base: 'http://some-domain.de/'
baseVariants: {  }
languages:
  -
    title: 'Meine tolle Webseite'
    enabled: true
    languageId: '0'
    base: /
    typo3Language: de
    locale: de_DE.UTF-8
    iso-639-1: de
    navigationTitle: ''
    hreflang: ''
    direction: ''
    flag: de
  -
    title: 'Andere Sprache'
    enabled: true
    languageId: '1'
    base: /en/
    typo3Language: en
    locale: en_US.UTF-8
    iso-639-1: en
    navigationTitle: ''
    hreflang: ''
    direction: ''
    fallbackType: fallback
    fallbacks: '0'
    flag: en
errorHandling: {  }
routes: {  }
routeEnhancers:
  PageTypeSuffix:
    type: PageType
    default: .html
    map:
      .html: 0

Ответы [ 3 ]

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

Другим обходным решением вместо создания переводов для каждой страницы является создание статических маршрутов.Например:

route: de/english-slug-of-page
type: uri
source: https://yoursite/english-slug-of-page. 

Не очень удобное решение.И у него есть недостаток, заключающийся в том, что при маршрутизации на английские страницы будет изменен выбранный язык (в примере с немецкого на английский).

В TYPO3 9.5.4 до сих пор не решена эта проблема.

0 голосов
/ 15 февраля 2019

Это должен быть комментарий к ответу Штеффена Мехтеля, но у меня недостаточно репутации -.-.

Если вы хотите архивировать, чтобы все страницы были скрыты (внутри меню), когда нет переводавы можете установить глобальную настройку в разделе «Параметры модуля» -> «Настройка параметров всей установки» -> [FE] [hidePagesIfNotTranslatedByDefault] (

0 голосов
/ 15 декабря 2018

Существует открытая ошибка, связанная с откатом содержимого:

https://forge.typo3.org/issues/86762

Возможно, попробуйте обновить до 9.5.3 (не знаю, если это там исправлено).

В качестве обходного пути: Вы хотите удалить не переведенные страницы в меню на английском языке?

Затем вы можете установить для всех страниц «Скрыть страницу, если перевода для текущего языка не существует».Этот флажок доступен для каждой страницы на вкладке «язык».

Чтобы сделать это для всех существующих страниц:

UPDATE pages SET l18n_cfg = 2

Чтобы автоматически установить этот флаг для вновь создаваемых страниц: Создайте переопределение pages.php в своем расширении.

typo3conf/ext/[YOUR_EXTENSION]/Configuration/TCA/Overrides/pages.php

И добавить значение по умолчанию для l18n_cfg

$GLOBALS['TCA']['pages']['columns']['l18n_cfg']['config']['default'] = 2;
...