Hallo Johannes ich denke, das liegt daran, dass Du via equals('sys_language_uid',1) ja wirklich nur Englisch ausliest. Da kannst Du eigentlich die Zeile mit setRespectSysLanguage fallen lassen und das "equals" mit "in" ersetzten und gegen einen Array mit (-1,0,Sprachcode) testen, dann werden die richtigen Sprachen ausgelesen.
Gruss Renzo -- ________________________________________________________________________ Renzo Bauen conPassione gmbh T +41 33 345 00 92 M +41 79 330 10 11 http://www.conpassione.ch TYPO3 Bronce Associate Am Dienstag, den 16.04.2013, 12:23 +0200 schrieb Johannes C. Schulz - EnzephaloN IT-Solutions: > Hallo Renzo > > Danke für Deine sehr ausführlichen Informationen. > Ich habe mich dahingehend nochmal in meinem Kopf umgeschaut und bei meiner > Extension wohl den Haken gefunden: > Es gibt Datensätze die übersetzt sind, aber die Attribute (nach denen auch > gesucht werden kann) sind nicht übersetzt. Dadurch kam es wohl dazu, daß > nichts ausgegeben wurde, da extbase wohl versuchte die Übersetzungen der > Attribute zu finden. > Ich habe mir jetzt so beholfen: > > if(t3lib_div::_GP('l') != '0'){ > $query->getQuerySettings()->setRespectSysLanguage(FALSE); > $langsearch = > $query->logicalAnd($query->equals('sys_language_uid',1)); > $constraint[] = $langsearch; > } > > Das funktioniert schonmal für "englisch". Bei den anderen zwei Sprachen wird > komischerweise "deutsch" ausgegeben... > > Grüße > Johannes > > > > -----Ursprüngliche Nachricht----- > Von: typo3-german-boun...@lists.typo3.org > [mailto:typo3-german-boun...@lists.typo3.org] Im Auftrag von conPassione gmbh > Gesendet: Dienstag, 16. April 2013 11:53 > An: typo3-german@lists.typo3.org > Betreff: Re: [TYPO3-german] extbase 6.0.0 - TranslationHandling > > Hallo Johannes > > Du machst folgendes: > mit setRespectSysLanguage(FALSE) setzt Du die Sprachbehandlung ausser Kraft, > d.h. TYPO3 gibt Dir dann alle Datensätze aus ohne Einschränkung durch die > Sprache! Es ist deshalb logisch, dass Du sie doppelt bekommst. > Der SQL String wird dann keine WHERE-Klausel haben mit sowas wie > 'sys_language_uid' = XY. > > Selber bin ich gerade daran unter 4.7.10 verknüpfte Datensätze sprachabhängig > und mit fall-back Mechanismus auszulesen. > Das mache ich so: > > Voraussetzung: > In Tabelle Events gibt es Datensätze wie diese: > uid title l10n_parent ... > 1 TestD1 0 > 2 TestF1 1 > 3 TestD2 0 > 4 TestD3 0 > 5 TestF2 3 > 6 TestD4 0 > d.h. bei jedem ins Französische übersetzten Datensatz "TestF.." wird in der > Spalte l10n_parent die uid des "originalen" Deutschen Datensatzes > gespeichert. Das macht TYPO3 so, wenn man eine Übersetzung eines Datensatzes > im BE anlegt. > > Für die Kategorien gilt dasselbe. > uid title l10n_parent ... > 1 KatD1 0 > 2 CatF1 1 > 3 KatD2 0 > 4 CatF2 3 > > Nun habe ich das Problem, dass das Selektieren nach Kategorie schwierig wird, > vor allem dann, wenn es ein fall-back geben soll! > Wenn ich einem Deutschen Datensatz eine Kategorie KatD1 zuordne,und dem auff > Französich übersetzten Datensatz die entsprechende CatF1, kann ich nicht > einfach nach Kategorie uid = 1 suchen, sonst finde ich die übersetzten nicht > und umgekehrt. > > Die Lösung für diese Probleme ist scheinbar einfach... > Ich brauche lediglich folgendes Konstrukt in meinem EventRepository: > > public function findEventsByCategory($languageUid, $eventCatID, > $eventCatTranslatedID) { > $lan = array(); > $lan[] = -1; > $lan[] = 0; > $lan[] = $languageUid; > > $cat = array(); > $cat[] = $eventCatID; > $cat[] = $eventCatTranslatedID; > > $query = $this->createQuery(); > $query->matching( > $query->logicalAnd( > $query->in('sys_language_uid', $lan), > $query->in('event_cat', $cat) > ) > ); > } > > Damit werden auf der deutschen Seite alle Datensätze korrekt ausgegeben, > inkl. der verknüpften Kategorien und dasselbe auf französisch. Dabei auf > französisch alle französischen Datensätze angezeigt und wo es keine > Übersetzung gibt, die deutschen. Die den deutschen Datensätzen zugeordneten > Kategorien werden dabei auch auf Französisch übersetzt: > > ausgegebene Liste in Deutsch und in Französisch > Event Kategorie Manifestation Categorie > TestD1 KatD1 TestF1 CatF1 > TestD2 KatD1 TestF2 CatF1 > TestD3 KatD2 TestD3 CatF2 > TestD4 KatD2 TestD4 CatF2 > > Das einzige wirklich schwierige ist, von der $eventCatTranslatedID auf die > originale $eventCatID zu schliessen, d.h. für eine uid in der Tabelle > Kategorie die entsprechende l10n_parent rauszulesen. > > Wichtig für mich war die Erkenntnis, dass Extbase sehr viel hilft bei dem > Auslesen von Datensätzen, wenn man die Abfrage mit in('sys_language_uid', > $lan) und nicht mit equals('sys_language_uid', > $languageUid) macht. Dann kommen die richtigen Datensätze! > > Ich hoffe Dir damit etwas geholfen zu haben. > Und ich bin gerade daran, das auf 6.0.4 zu portieren um zu schauen, obs da > auch noch funktioniert. > > Liebe Grüsse > Renzo > > > ________________________________________________________________________ > > > Renzo Bauen > conPassione gmbh > T +41 33 345 00 92 > M +41 79 330 10 11 > http://www.conpassione.ch > TYPO3 Bronce Associate > > Am Dienstag, den 16.04.2013, 10:44 +0200 schrieb Johannes C. Schulz - > EnzephaloN IT-Solutions: > > > Hallo nochmal zu diesem Thema > > > > Ich habe die Funktion weggeworfen und die if-Anweisung in meine > > Repository Methode eingefügt. > > if((integer)(t3lib_div::_GP('l')) > 0){ > > $query->getQuerySettings()->setRespectSysLanguage(FALSE); > > $query->getQuerySettings()->setSysLanguageUid(1); > > } > > 1.) Durch das setRespectSysLanguage(FALSE) werden alle Datensätze zwar > > in der korrekten Sprache, dafür aber doppelt ausgegeben. > > 2.) das setSysLanguageUid(1) hat keinerlei Effekt. > > > > Was ist falsch?? > > > > Johannes > > > > -----Ursprüngliche Nachricht----- > > Von: typo3-german-boun...@lists.typo3.org > > [mailto:typo3-german-boun...@lists.typo3.org] Im Auftrag von Johannes C. > > Schulz - EnzephaloN IT-Solutions > > Gesendet: Dienstag, 16. April 2013 09:55 > > An: typo3-german@lists.typo3.org > > Betreff: [TYPO3-german] extbase 6.0.0 - TranslationHandling > > > > Hallo Freunde > > > > > > > > Beim Versuch eine ältere Extension die ich geschrieben habe auf > > extbase 6 zum Laufen zu bringen, bemerkte ich plötzlich daß das > > TranslationHandling nicht mehr funktioniert. > > > > Bis jetzt läuft das unter typo3 4.7.10 alles ohne Probleme. Auf meinem > > typo3 > > 6.0.4 Testserver zeigt die Listenansicht auf den englischen, > > französichen und holländischen Seiten aber keinerlei Datensätze mehr. > > Das Plugin wird geladen, aber es werden anscheinend keine Objekte an den > > View übergeben. > > Jetzt habe ich mal im Netz gesucht und folgende Funktion meinem > > Repository > > hinzugefügt: > > > > public function initializeObject(){ > > > > /** @var $querySettings > > \TYPO3\CMS\Extbase\Persistence\Generic\Typo3QuerySettings */ > > > > $querySettings = > > $this->objectManager->get('TYPO3\\CMS\\Extbase\\Persistence\\Generic\\ > > Typo3Q > > uerySettings'); > > > > if((integer)(t3lib_div::_GP('l')) > 0){ > > > > $querySettings->setRespectSysLanguage(FALSE); > > > > $querySettings->setSysLanguageUid(1); > > > > $this->setDefaultQuerySettings($querySettings); > > > > } > > > > else{ > > > > $querySettings->setSysLanguageUid(0); > > > > $this->setDefaultQuerySettings($querySettings); > > > > } > > > > } > > > > > > > > Allerdings hilft das nicht weiter. Die Liste bleibt leer. > > > > Kann mir hier jemand bitte weiterhelfen? > > > > > > > > Johannes > > > > _______________________________________________ > > TYPO3-german mailing list > > TYPO3-german@lists.typo3.org > > http://lists.typo3.org/cgi-bin/mailman/listinfo/typo3-german > > > > > > _______________________________________________ > > TYPO3-german mailing list > > TYPO3-german@lists.typo3.org > > http://lists.typo3.org/cgi-bin/mailman/listinfo/typo3-german > _______________________________________________ > TYPO3-german mailing list > TYPO3-german@lists.typo3.org > http://lists.typo3.org/cgi-bin/mailman/listinfo/typo3-german > > _______________________________________________ > TYPO3-german mailing list > TYPO3-german@lists.typo3.org > http://lists.typo3.org/cgi-bin/mailman/listinfo/typo3-german _______________________________________________ TYPO3-german mailing list TYPO3-german@lists.typo3.org http://lists.typo3.org/cgi-bin/mailman/listinfo/typo3-german