---
title: "Datenbankfelder der eigenen Extension (Mehrsprachigkeit)"
url: "https://www.typo3.net/d/105456-datenbankfelder-der-eigenen-extension-mehrsprachigkeit"
source: "typo3.net"
tags: ["Extensions","Entwicklung","Frage","TCA"]
created: "2011-05-19"
last_reply: "2011-05-20"
replies: 2
solved: false
page: 1
pages: 1
lang: "de"
---

# Datenbankfelder der eigenen Extension (Mehrsprachigkeit)

Extensions › Entwicklung · 2 Antworten · gestartet 2011-05-19

## Eröffnungsbeitrag

**Unbekannter Benutzer** · 2011-05-19 · [Beitrag #1](https://www.typo3.net/d/105456-datenbankfelder-der-eigenen-extension-mehrsprachigkeit/1)

Hi,

ich bin dabei mich in extbase und fluid einzuarbeiten aber ich denke meine Frage betrifft generell das Thema "Extension Entwicklung".

Ich habe mir die Extensions "sjr_offers" und "blog_example" als Grundlage/Referenz für meine eigene erste Extension hergenommen.

In der **ext_tables.sql** meiner Extension steht unter anderem folgendes:

```php
sys_language_uid int(11) DEFAULT '0' NOT NULL,
l18n_parent int(11) DEFAULT '0' NOT NULL,
l18n_diffsource mediumblob NOT NULL,
access_group int(11) DEFAULT '0' NOT NULL,
```

In der **ext_tables.php** meiner Extension steht unter anderem das hier:

```php
ctrl' => array (
        'tstamp' => 'tstamp',
	'crdate' => 'crdate',
	'languageField' => 'sys_language_uid',
	'transOrigPointerField' => 'l18n_parent',
  	'transOrigDiffSourceField' => 'l18n_diffsource',
	'delete' => 'deleted',
	'enablecolumns' => array(
		'disabled' => 'hidden'
	),
),
'columns' => array(
	'sys_language_uid' => array(
		'exclude' => '1',
		'label' => 'LLL:EXT:lang/locallang_general.php:LGL.language',
		'config' => array(
			'type' => 'select',
			'foreign_table' => 'sys_language',
			'foreign_table_where' => 'ORDER BY sys_language.title',
			'items' => Array(
				Array('LLL:EXT:lang/locallang_general.php:LGL.allLanguages',-1),
				Array('LLL:EXT:lang/locallang_general.php:LGL.default_value',0)
			)
		)
	),
),
```

Das habe ich eigentlich einfach aus den anderen Extensions kopiert.

In der **tca.php** der Extension sjr_offers steht das hier:

```php
'columns' => array(
      'sys_language_uid' => array(
      	'exclude' => 1,
      	'label' => 'LLL:EXT:lang/locallang_general.php:LGL.language',
      	'config' => array(
      		'type' => 'select',
      		'foreign_table' => 'sys_language',
      		'foreign_table_where' => 'ORDER BY sys_language.title',
      		'items' => Array(
      			Array('LLL:EXT:lang/locallang_general.php:LGL.allLanguages',-1),
      			Array('LLL:EXT:lang/locallang_general.php:LGL.default_value',0)
      		)
      	)
      ),
      'l18n_parent' => array(
      	'displayCond' => 'FIELD:sys_language_uid:>:0',
      	'exclude' => 1,
      	'label' => 'LLL:EXT:lang/locallang_general.php:LGL.l18n_parent',
      	'config' => array(
      		'type' => 'select',
      		'items' => array(
      			Array('', 0),
      		),
      		'foreign_table' => 'tt_news',
      		'foreign_table_where' => 'AND tt_news.uid=###REC_FIELD_l18n_parent### AND tt_news.sys_language_uid IN (-1,0)',
      	)
      ),
      'l18n_diffsource' => Array(
      	'config'=>array(
      		'type'=>'passthrough')
      ),
),
```

Was ich nicht verstehe sind die zwei Arrays für **l18n_parent** und **l18n_diffsource** (deswegen hab ich das nicht in die ext_tables.php meiner Extension nicht übernommen).
Welchen Zweck erfüllen diese zwei Datenbankfelder und brauche ich sie unbedingt in meiner Extension?
Wieso wird bei **l18n_parent** mit **foreign_table => 'tt_news'** auf die Tabelle von tt_news zugegriffen? Kann man das einfach weglassen?

Danke schon Mal für hilfreiche Antworten :)

## Antworten

### [#2](https://www.typo3.net/d/105456-datenbankfelder-der-eigenen-extension-mehrsprachigkeit/2) · aemka · 2011-05-20

Was er da mit tt_news macht, verstehe ich auch nicht. Sieht mir eher wie ein Copy & Paste Fehler aus.

18n_parent gibt bei übersetzten Records die ID des Eltern-Records an, von dem eine Übersetzung angelegt wurde.
l18n_diffsource speichert den Unterschied von Inhalten des Eltern-Records zu den übersetzten INhalte des aktuelllen Records in einer anderen Sprache.

Also beides nur bei Mehrsprachigkeit notwending. BEvor du dich aber mit dem kompletten TCA beschäftigst, auch wenn das sehr löblich ist, ist es wohl einfacher für den Anfang mit dem Kickstarter zu arbeiten. Zumindest wenn der Extbase-Kickstarter derzeit funktioniert. .-)

### [#3](https://www.typo3.net/d/105456-datenbankfelder-der-eigenen-extension-mehrsprachigkeit/3) · Unbekannter Benutzer · 2011-05-20

Hi,

ok jetzt verstehe ich das schon um einiges besser, danke! :)

Mir war aus der Namensgebung nicht klar, was die Felder für eine Aufgabe haben. Die übersetzte Version eines Datensatzes ist also ein Kind des originalen Datensatzes. Na das muss man erst mal gesagt bekommen hehe ;)

Mit dem Kickstarter hab ich so meine Probleme: fängt schon damit an, dass ich es nicht hinbekomme auf dieses GIT Repository zuzugreifen. Mit Eclipse will das irgendwie nicht funktioneren :( Wie kann ich den Kickstarter denn herunterladen?

Besten dank! :)

---

Quelle: „Datenbankfelder der eigenen Extension (Mehrsprachigkeit)“, typo3.net, https://www.typo3.net/d/105456-datenbankfelder-der-eigenen-extension-mehrsprachigkeit
Beiträge von Mitgliedern des Forums. Bitte mit Link auf die Diskussion zitieren.
