Как настроить TYPO3 9.5.x с концепцией нескольких деревьев для языков - PullRequest
3 голосов
/ 17 апреля 2019

Для нового сайта я должен установить несколько языков TYPO3 9.5.Я сделал это для предыдущих версий, но не работаю с версией 9.5.Искал пару дней безрезультатно.Все решения предназначены для более старой концепции TYPO3 или «одного дерева».

Веб-сайт имеет такую ​​структуру:

  • Домашняя страница (перенаправление на NL)
    • NL (домашняя страница)с голландским контентом)
      • Algemeen
      • Контакт
      • ...
    • DE (домашняя страница с немецким контентом)
      • Allgemeine info
      • Контакт
      • ...

URL-адреса:
- https://domain.tld/nl/
- https://domain.tld/nl/algemeen/
- https://domain.tld/nl/contact/
- https://domain.tld/de/
- https://domain.tld/de/allgemeine-info/
- https://domain.tld/de/kontakt/

Домашняя страница и часть DEстраницы со всеми настройками TypoScript.
Я не хочу переводить страницы.Когда вы переходите на /nl/ все на голландском и вы находитесь в голландском дереве страниц, когда вы переходите на /de/ все на немецком и вы находитесь в немецком дереве страниц.

Сайт такого же типаструктура используется для других веб-сайтов, которые должны быть перенесены с TYPO3 8.7 на 9.5 в ближайшем будущем.

Я настроил новый веб-сайт и настроил его через Управление сайтом -> Сайты.
The RootИдентификатор страницы установлен для «Домашней страницы».
На вкладке «Языки» у меня установлен язык по умолчанию: голландский (NL) с базовым /nl/.
и немецкий (DE) с базовым /de/.
нетОбработка ошибок и статические маршруты установлены на данный момент.

Я добавил расширение с другого веб-сайта с шаблонами FLUID, основанными на страницах Flux и Flux.

Я попытался установить язык с помощью TypoScript (Настройка) на /nl/ и /de/.Но это игнорируется.Я предполагаю, что это из-за TYPO3 9.5.
NL:

config {
  language = nl
  locale_all = nl_NL.utf8
  sys_language_uid = 0
}

DE:

config {
  language = de
  locale_all = de_DE.utf8
  sys_language_uid = 1
}

Стандартный слаг https://domain.tld/de/allgemeine-info/ - https://domain.tld/de/de/allgemeine-info/ в этой настройке.Когда я устанавливаю слаг вручную, я могу получить то, что хочу ... вроде, но тогда вам нужно установить слаг для каждой страницы.И я также могу позвонить https://domain.tld/de/nl/algemeen/ и https://domain.tld/nl/de/allgemeine-info/, что не в порядке.

Есть ли способ установить язык только через TypoScript, а не через Управление сайтом, чтобы я мог создать сайт с несколькими деревьями?

Надеюсь, кто-нибудь поможет мне в правильном направлении.

Спасибо!

1 Ответ

0 голосов
/ 19 апреля 2019

Вы можете реализовать этот сценарий, создав два отдельных сайта, по одному для каждого языка:

В вашем примере вы бы отметили флажок «Использовать как корневую страницу» в свойствах страницы корневых страниц двух языков:

  • NL (домашняя страница с голландским контентом)
  • DE (домашняя страница с немецким контентом)

Затем вы создаете две конфигурации сайта.

Для голландцев:

rootPageId: <ID of NL page>
base: 'https://www.domain.tld/nl/'
baseVariants: {  }
languages:
  -
    title: Dutch
    enabled: true
    languageId: '0'
    base: /
    typo3Language: nl
    locale: nl_NL.utf8
    iso-639-1: nl
    navigationTitle: Dutch
    hreflang: nl-NL
    direction: ltr
    flag: nl
errorHandling: {  }
routes: {  }

А для немецкого:

rootPageId: <ID of DE page>
base: 'https://www.domain.tld/en/'
baseVariants: {  }
languages:
  -
    title: English
    enabled: true
    languageId: '0'
    base: /
    typo3Language: default
    locale: en_US.utf8
    iso-639-1: en
    navigationTitle: English
    hreflang: en-US
    direction: ltr
    flag: us
errorHandling: {  }
routes: {  }

При такой настройке вам не нужны записи о языке веб-сайта, поскольку оба дерева будут использовать язык по умолчанию 0.

Может потребоваться добавить третий сайт для корневого домена, который перенаправляет пользователя на дерево страниц /nl. Настройка будет такой же, как и для голландской версии, за исключением того, что идентификатор страницы и настройка base будут другими.

...