TYPO3 9: Mehrsprachigkeit

Auch bei der Mehrsprachigkeit hat sich einiges geändert. Nehmen wir an, wir wollen 2 Sprachen definieren, deutsch und englisch. Dann müssen wir dies zunächst in der config.yaml definieren:

languages:
  -
    title: Deutsch
    enabled: true
    languageId: '0'
    base: /
    typo3Language: de
    locale: de_DE
    iso-639-1: de
    navigationTitle: ''
    hreflang: ''
    direction: ''
    flag: de
  -
    title: English
    enabled: true
    languageId: '1'
    base: /en
    typo3Language: en
    locale: en_US
    iso-639-1: en
    navigationTitle: ''
    hreflang: ''
    direction: ''
    flag: us

Früher musste man im root Element „Website Language“ für weitere Sprachen anlegen, dies muss nicht mehr sein bzw. falls man upgraded von einer alten Version kann man dies einfach löschen.

Im TCA der eigenen Entities muss nun die Sprache etwas anders als vorher definiert werden:

'sys_language_uid' => array(
	'exclude' => 1,
	'label' => 'LLL:EXT:lang/Resources/Private/Language/locallang_general.xlf:LGL.language',
	'config' => array(
		'type' => 'select',
		'special' => 'languages',
		'foreign_table' => 'sys_language',
		'foreign_table_where' => 'ORDER BY sys_language.title',
		'items' => [
			[
				'LLL:EXT:lang/Resources/Private/Language/locallang_general.xlf:LGL.allLanguages',
				-1,
				'flags-multiple'
			]
		],
	),
),

Der erste Eintrag in Items steht für „All“, diese Konfiguration ergibt dann folgendes Sprachdropdown:

Sprachendropdown nach korrekter Konfiguration

5 thoughts on “TYPO3 9: Mehrsprachigkeit

  1. Vielen Dank für die Anleitung! Ich habe neulich eine Installation von TYPO3 8 auf TYPO3 9 upgegraded und die Mehrsprachigkeit wie oben beschrieben nachkonfiguriert (auch bei mir war bzw. ist Deutsch [0] die Standardsprache und Englisch [1] die alternative Sprache). Es funktioniert soweit alles und die Tabelle pages_language_overlay ist gelöscht. wenn ich jedoch auf der Root-Seite den ehemaligen Spracheintrag („Website Language“) lösche (Englisch [1]), wie oben beschreiben, ergibt sich folgendes:
    > bei Seiten, die noch nicht übersetzt sind, fehlt die Option „Neue Übersetzung dieser Seite erstellen“
    > In der Seitenansicht im Backend enthält das Dropdown-Menü im Inhaltsbereich nur noch die Option „Spalten“ statt bisher „Spalten“ und „Sprachen“. Mit „Sprachen“ konnte man bisher die Inhaltselemente beider Sprachen nebeneinader anzeigen.

    Hat jemand eine Ahnung, woran das liegen kann?! Um das alte Verhalten aus TYPO3 8 wiederherzustellen, habe ich vorerst den Sprachdatensatz auf der Root-Seite wieder angelegt (und diesem per PHPMyAdmin die ursprüngliche ID 1 gegeben).

  2. Denke schon, in der neuen Seitenkonfiguration sind beide Sprachen angelegt und die Mehrsprachigkeit funktioniert prinzipiell. So wie es aussieht, muss der Spracheintrag für die zusätzliche Sprache auf der Root-Seite dennoch erhalten bleiben.

    Über „Admin-Werkzeuge > Wartung > Analyze Database Structure“ wird die Tabelle sys_language nicht als obsolet angezeigt. Zudem gibt es in TYPO3 9 auf der Root-Seite bei „Neuen Datensatz erstellen“ weiterhin die Option „Website-Sprache (Definiert, welche alternativen Sprachen auf den einzelnen Web-Seiten verfügbar sind.)“. Wäre der Spracheintrag in TYPO3 9 unnötig, würde es diese Option wahrscheinlich nicht mehr geben.

    Vielleicht weiß jemand mehr dazu? Ich habe bisher keinen Vergleich, wie es mit der Mehrsprachigkeit ist, wenn man direkt mit TYPO3 9 beginnt. Meine Installation wurde ja von TYPO3 8 (hier bereits zweisprachig) auf TYPO3 9 upgegraded.

  3. My German is not god in writing so here I go: I have searched a downloaded typo3 9.5 installation and could not find one config.yaml there. The only thing I want to be able to do is change the word ´default´in the menu to ´Deutsch´- all the other languages are working fine. I am so at wits end that I am considering adding an extra row to the table SYS_language or something with UID= 0

Schreibe einen Kommentar

Deine E-Mail-Adresse wird nicht veröffentlicht. Erforderliche Felder sind mit * markiert

Diese Website verwendet Akismet, um Spam zu reduzieren. Erfahre mehr darüber, wie deine Kommentardaten verarbeitet werden.