[TYPO3-UG Oesterreich] Re: plugin.tx_t3references/ übersetzung der categories

Christian Holzmann mail at innovations.at
Sat Feb 9 14:32:46 CET 2008


Hi Markus!

Klar helfen wir Dir gerne!
Nicht dass ich Geld verachte, aber probiers mal
zuerst so wie unten beschrieben ;-)
Wenn Du mit diesem Tipp nicht zurecht kommst,
kannst mir auch noch ein Mail schreiben:

=> Du hast das Problem, dass momentan im Backend in den
Relationen ALLE Sprachen angezeigt werden.

Lösung: tca.php in Deinem Extension Ordner
Dort wird definiert, was angezeigt werden soll.
Bei dem Feld, bei dem die Relations angezeigt werden sollen,
gibts meistens einen Eintrag
foreign_table_where

Da steht z.B. drinnen
'foreign_table_where' => 'AND EXTENSIONTABELLE.pid=###CURRENT_PID###'

Das würde bedeuten, dass er aus der aktuellen Page die Datensätze 
ausgelesen werden. Statt ###CURRENT_PID### kann auch ###STORAGE_PID### 
stehen, dann würden die Datensätze aus der in der Seite definierbaren
DATENQUELLE gelesen werden.

So... es werden also ALLE Datensätze ausgelesen, die in der angegebenen
Seite liegen. Du möchtest aber NUR die auslesen, die in der 
Originalsprache eingegeben wurden, nicht die übersetzten.

Das ergibt sich durch:
'foreign_table_where' => 'AND EXTENSIONTABELLE.pid=###CURRENT_PID### AND 
EXTENSIONTABELLE.sys_language_uid IN (-1,0)',

Im Feld sys_language_uid wird die Sprache gespeichert. -1 bedeutet, dass
der Datensatz für "Alle Sprachen" gespeichert wurde, 0 ist normalerweise
die Standard-Sprache.
Füg das mal ein und Du hast nur mehr die gewünschten Originaldatensätze
zur Auswahl.


Nun gehts weiter.

In der Extension selbst bekommst Du also nun IMMER die 
Originaldatensätze, egal welche Sprache Du eingestellt hast.
Du musst also die Übersetzungen auslesen... also das Overlay.


Du hast irgendwo in der Extension also ein exec_SELECT_query oder
ein exec_SELECT_mm_query oder ähnliches.

Jetzt wirds kniffelig... es gibt eine Funktion getRecordOverlay,
die Dir die Übersetzung eines Datensatzes einer Tabelle ausliest.

Wenn Du jedoch eine SQL Query für eine Relation anstösst... weil diese
Overlay-Funktion nicht mehr, welche Tabelleninhalte er übersetzen 
soll... bzw. müsstest Du für jede Tabelle, die in dieser Relation 
verwendet wird, dann dieses getRecordOverlay anstossen,

Wichtig ist auch noch, das ganze unter Berücksichtigung der aktuell
eingestellten Sprache, und des eingestellten sys_language_modes 
durchzuführen:

Annahme: Das Ergebnis-Array Deines Selects ist in der Variable $row:

if ($GLOBALS['TSFE']->sys_language_content) {
$OLmode = ($this->sys_language_mode == 'strict'?'hideNonTranslated':'');
$row = $GLOBALS['TSFE']->sys_page->getRecordOverlay('EXTENSIONTABELLE1', 
$row, $GLOBALS['TSFE']->sys_language_content, $OLmode);

}
Gibt es im Relations-Select noch eine zweite beteiligte Tabelle 
"EXTENSIONTABELLE2", führst Du das einfach mit dieser Tabelle nochmals 
durch.

if ($GLOBALS['TSFE']->sys_language_content) {
$OLmode = ($this->sys_language_mode == 'strict'?'hideNonTranslated':'');
$row = $GLOBALS['TSFE']->sys_page->getRecordOverlay('EXTENSIONTABELLE2', 
$row, $GLOBALS['TSFE']->sys_language_content, $OLmode);

}

Danach hast Du den übersetzten Code in $row.
Das ist allerdings eine etwas schlampige Lösung, denn hier vermische ich 
ein Select mit Daten von mehreren Tabellen und übersetze sie.

Schöner wäre es, Du würdest zuerst ein mm_Select machen, aus den 
Ergebnissen dann schön die zu übersetzenden Tabelleninhalte rausfiltern, 
und dann erst ein Overlay.


Ich hoffe, damit ein wenig geholfen zu haben.
Greetz Chris



Markus Meixner schrieb:
> liebe TYPO3 freunde,
> 
> hab die extension t3references am start.
> 
> mein problem:  ich habe einige sprachen und die "categories" müssten für 
> in die jeweilige sprache übersetzt angezeigt werden.
> 
> - hab mal mit dem kickstarter die "lokalisierung" aktiviert.
> - jetzt kann ich zu jeder kategorie die übersetzungen anlegen.
> 
> das problem ist nur das nun alle übersetzungen mit den "normalen" 
> categories bei dem DB-ralation - feld  mit angezeigt werden.
> - mein ziel wäre allerdings das ich die kategorie in einer sprache 
> ("normal") zuweise - und mir dann im frontend die jeweilige übersetzung 
> angezeigt wird.
> 
> leider habe ich da überhaupt keine erfahrung mit der mehrsprachigkeit.
> -  sicher könnte man da bei z.b. den tt_news nachschaun wie das dort 
> gelöst ist.
> - da die tt_news für meinen geschmack schon zu komplex ist wollte ich 
> mich an euch wenden ob da jemand schon erfahrungen mit multilingualen 
> extensions (entwicklung) hat
> - bzw. könnte mir da jemand helfen (natürlich gegen bezahlung)
> 
> bin für jeden tipp dankbar!
> 
> lg,
> markus


-- 
--
Christian Holzmann
http://blog.innovations.at |  Blog für Innovationen (Testphase)
http://www.gugler.at  |  gugler cross media
ICQ#: 57401555


More information about the TYPO3-at mailing list