[ADD to CORE] [SOLVED] Kategorie-Baum Multilingual

Fragen zur Installation von CONTENIDO 4.9? Probleme bei der Konfiguration? Hinweise oder Fragen zur Entwicklung des Systemes oder zur Sicherheit?
Antworten

Redakteur-Sprach-Feature

Jep, gute Idee.
3
100%
Nö, es geht auch anders (wie schreibe ich unten als Post in diesen Thread!!!)
0
Keine Stimmen
Egal.
0
Keine Stimmen
 
Abstimmungen insgesamt: 3

rethus
Beiträge: 1820
Registriert: Di 28. Mär 2006, 11:55
Wohnort: Mönchengladbach
Kontaktdaten:

[ADD to CORE] [SOLVED] Kategorie-Baum Multilingual

Beitrag von rethus » Do 21. Aug 2014, 12:02

Aus gegebenen Anlass (Page in Russisch) fällt eine Schwierigkeit auf.
Pflegt man Kategorien in russischer Sprache ein, ist aber eher der Redakteur für "Copy & Paste" der vom Übersetzer kommende Texte in die Page integriert, wird es sehr schwer Sich in den Kategorien und Artikeln zurecht zu finden.
So nach dem Motto: In DE heißt die Kategorie "Firma > Unternehmen > Niederlassung > Schreibtisch > Telefon > Kaffeebecher (Artikel)" ist es fast ein Tagewerk für einen DE sprachigen Redakteur entsprechenden Pfad in russisch ausfindig zu machen.

Habt Ihr hier Tipps und Erfahrungswerte wie man sich hier besser zurechtfindet?

Da die Kategorien und Artikel genau die gleichen ID's in den jeweiligen Sprachen haben, wäre es doch bestimmt relativ einfach möglich, über einen "Switch" die Kategorien in einer vorausgewählten "Redakteursprache" zu wählen?!
Screenshot_005_20140821.jpg
Screenshot_005_20140821.jpg (26.33 KiB) 2543 mal betrachtet
Würde im obigen Beispiel bedeuten... schalte ich als Redakteur den Sprachbereich auf russisch, sind die Kategorien wie gewohnt russisch. Wechsel ich dann über meinen neuen Button (siehe Bild) nach DE, werden die deutschen Übersetzungen für die Kategorien genutzt (temporär).
Zuletzt geändert von rethus am Do 4. Sep 2014, 14:44, insgesamt 2-mal geändert.
Could I help you... you can help me... buy me a coffee . (vielen ❤ Dank an: Seelauer, Peanut, fauxxami )

xstable - Onlineshops, Hosting, Domains und Webentwicklung
suther.de - Webentwicklung, IT-Service, IT-Beratung, Linux-Administration

Software... ein Blick wert: GoogleCalender Eventlist, xst_dynamic_contentType

Faar
Beiträge: 1345
Registriert: Sa 8. Sep 2007, 16:23
Wohnort: Brandenburg
Kontaktdaten:

Re: [WISH] Kategorie-Baum Multilingual

Beitrag von Faar » Do 21. Aug 2014, 13:59

Ich glaube, das hat Haken und Ösen:
Woher kommen die Deutschen Benennungen für die Kategorien, wenn sie in russisch erstellt wurden?
Irgendwer muss ja zuvor diese in Deutsch eingetragen haben :roll:

Wenn es allgemein tauglich sein soll, müsste es in englisch sein, wegen der Internationalität.
Aber wer würde die Englische Bezeichnung der Kategorien eintragen?

Und wo sich die Maus in den Schwanz beißt:
Wenn die Kategorien alle in russisch erstellt wurden und es noch keine Übersetzung gibt (die soll ja erst erstellt werden), dann gibt es auch in der Datenbank nirgends eine Spalte, in der diese Übersetzung stehen könnte.
Folglich müsste man zuerst synchronisieren um danach den Kategoriebaum in Englisch übersetzen zu können.
Und danach erst könnte man einen wirksamen Button anbieten, der die englische Übersetzung einblendet.
...das klingt nicht nur kompliziert und wackelig... :?

Wäre es nicht besser, Google-Translate zu bemühen?
Fliegt der Bauer übers Dach, ist der Wind weißgott nicht schwach.

rethus
Beiträge: 1820
Registriert: Di 28. Mär 2006, 11:55
Wohnort: Mönchengladbach
Kontaktdaten:

Re: [WISH] Kategorie-Baum Multilingual

Beitrag von rethus » Fr 22. Aug 2014, 10:23

Danke für dein Feedback. Ich glaube wir sind da noch nicht auf einer Linie. Aber das ist gut, denn dass bedeutet, dass ich es noch nicht so verständlich geschildert habe, wie es hätte sein sollen.

Ich versuch es mal genauer zu Erklären bzw. gehe auf deine Fragen ein:

Grundsätzliche Gedankenbasis
Zu 101% wird immer die Sprache zuerst eingepflegt in der man zuhause ist. Von da wird Übersetzt, nachdem man synchronisiert hat.
Hat man synchronisiert findet man sich aber ggf. nicht mehr zurecht, weil man die Übersetzungen ggf. nur als Redakteur in Copy&Paste eingefügt hat.
Erst hier… kommt die Funktion der Redakteursprache zum tragen. Eine Umschaltung basiert also immer auf einer schon existierenden Sprache, die übersetzt und schon eingepflegt wurde!!
Mit diesem Ablauf im Hintergrund und den folgenden Infos sollte klar werden, dass es technisch und logisch keine Mamutaufgabe ist. Man muss sie einfach nur einmal konzeptionell durchdringen.
WICHTIG: Die Besonderheit liegt hier in den Kategorien. Da die Benennung der Kategorien auch auf der Ausgabeseite für die Sprache angezeigt wird, kann ich nicht einfach die Kategorien in EN pflegen. Den Alias in englisch zu pflegen ginge sicherlich, wird aber aus SEO-Sicht kontraproduktiv sein. Bei den Artikeln ist es wieder anders, hier könnte man den Artikel in jeder Sprache benennen, und den Alias in der Zielsprache.
1) Woher kommen die Deutschen Benennungen für die Kategorien, wenn sie in russisch erstellt wurden?
Schau dir den Sourcecode an, wo die Kategorien generiert werden. Die DB-Abfrage holt über mehrere Tabellen verteilt die Kategorien.
SQL-Abfrage:

Code: Alles auswählen

SELECT
    DISTINCT a.idcat ,
    a.parentid ,
    a.preid ,
    a.postid ,
    a.parentid ,
    b.name ,
    b.idlang ,
    b.visible ,
    b.public ,
    c.level ,
    d.idtpl
FROM
    con_cat AS a LEFT JOIN con_cat_lang AS b
        ON a.idcat = b.idcat LEFT JOIN con_cat_tree AS c
        ON(
        a.idcat = c.idcat
        AND b.idcat = c.idcat
    ) LEFT JOIN con_template_conf AS d
        ON b.idtplcfg = d.idtplcfg
WHERE
    a.idclient = 1
ORDER BY
    a.idcat asc, 
    b.idlang DESC ,
    c.idtree ASC
Ergebnis (Auszugsweise):
Screenshot_002_20140822.jpg
Screenshot_002_20140822.jpg (16.83 KiB) 2508 mal betrachtet
Die Ergebnisspalte einer Kategorie ist bis auf 2 Einträge für alle Sprachen identisch: idlang und name.

Heißt unterm Strich, … es muss nicht Deutsch als erste Sprache sein, es kann von mir aus Tagalog oder Suaheli sein. Der Kategoriebaum wird ausgelesen und die Ergebnismenge aus der DB liefert für jede Kategorie (erst einmal) jede vorhandene Sprache. PHP filtert dann indem er prüft, welche Sprache denn aktuell gewünscht ist und gibt diese aus.

2) Irgendwer muss ja zuvor diese in Deutsch eingetragen haben
Es geht nicht um DE oder eine andere Sprache. Egal welche Sprache die Basis-Sprache ist, Kategorien in einer "ANDEREN" (sprich weiteren) Sprache werden erst angezeigt, wenn Sie gesynct sind.
Einfach ausgedrückt (wie in 1. geschildert) gibt es dann zur idcat 1 2 Datensätze: 1 in Suaheli (Sprache 1) und einen in Klingonisch (Sprache2). Bin ich also in Sprache 2 möchte diese aber in Sprache 1 angezeigt bekommen, wähle ich in meinem RedakteurSprache-Pulldown Sprache 1.

3)Wenn es allgemein tauglich sein soll, müsste es in englisch sein, wegen der Internationalität. Aber wer würde die Englische Bezeichnung der Kategorien eintragen?
Quatsch!. Aber ich denke auf Basis der obigen Schilderungen hab ich dir inszwischen vermitteln können, was gemeint ist. Jedes CMS-System kann die Basissprache wählen, die es will. Es ist einfach die 1. angelegte Sprache (alternativ wäre anschießend auch jede gesyncte möglich, wenn z.B Redakteur 1 von DE in EN übersetzt hat, und nun der EN-Redakteur via Copy&Paste auch Russisch pflegen soll, es sich aber auf englisch anzeigen lassen will, wenn es an die Artikelpflege geht).

4)Wenn die Kategorien alle in russisch erstellt wurden und es noch keine Übersetzung gibt (die soll ja erst erstellt werden), dann gibt es auch in der Datenbank nirgends eine Spalte, in der diese Übersetzung stehen könnte.
Wieder siehe oben... Wenn ich Russisch als erste Sprache erfasse, bin ich dem wohl mächtig.
Could I help you... you can help me... buy me a coffee . (vielen ❤ Dank an: Seelauer, Peanut, fauxxami )

xstable - Onlineshops, Hosting, Domains und Webentwicklung
suther.de - Webentwicklung, IT-Service, IT-Beratung, Linux-Administration

Software... ein Blick wert: GoogleCalender Eventlist, xst_dynamic_contentType

Zuschauer
Beiträge: 140
Registriert: Do 5. Dez 2013, 08:57
Kontaktdaten:

Re: [WISH] Kategorie-Baum Multilingual

Beitrag von Zuschauer » Fr 22. Aug 2014, 13:41

Also ICH habe mittlerweile (zumindest ansatzweise) verstanden um was es dir geht, halte das aber für den falschen Weg.
Wenn ein Inhalt eingepflegt wird, egal ob gesynct oder als erste Sprache, kann man das nicht einfach per copy&paste machen, da a) Formatierungen nachgearbeitet werden müssen und b) z. B. Zeilenumbrüche nicht immer sinnvoll sind wie sie automatisch erscheinen (Beispiel: "100 Euro", sieht in zwei Zeilen einfach nur blöd aus).
Also sollte ein Inhalt immer von jemand eingepflegt werden, der sich zumindest rudimentär mit der Sprache auskennt, und dann bedarf es keine Übersetzungen mehr.

Kunden, die (z. B. aus Kostengründen) Übersetzungen von Leute einarbeiten lassen, die sich mit der Zielsprache gar nicht auskennen, gehen bewusst das Risiko ein, dass sie später nur belächelt werden (freundlich gesagt).
Und dabei muss man sie nicht auch noch unterstützen, deshalb meine ablehnende Haltung.

Gruß
Zuschauer

Faar
Beiträge: 1345
Registriert: Sa 8. Sep 2007, 16:23
Wohnort: Brandenburg
Kontaktdaten:

Re: [WISH] Kategorie-Baum Multilingual

Beitrag von Faar » Fr 22. Aug 2014, 15:21

rethus hat geschrieben:Danke für dein Feedback. Ich glaube wir sind da noch nicht auf einer Linie.
Du suchst also eine Möglichkeit, die Kategoriebezeichnungen der 1. Sprache des Mandanten einzublenden?
Am besten wäre da ein Mouseover Effekt, der die Bezeichnung anzeigt, um nicht den Platz zu verbrauchen.

Im Prinzip die gleichen Abfrage wie normal, in der ersten Sprache, nur eben als Effekt zusätzlich darüber gelegt.
Die erste Sprache des Mandanten dürfte sich herausfinden lassen.

Nur, wie bindet man das in den internen Ablauf ein, so dass es zusätzlich zur Kategoriedarstellung angezeigt wird?
Fliegt der Bauer übers Dach, ist der Wind weißgott nicht schwach.

rethus
Beiträge: 1820
Registriert: Di 28. Mär 2006, 11:55
Wohnort: Mönchengladbach
Kontaktdaten:

Re: [WISH] Kategorie-Baum Multilingual

Beitrag von rethus » Do 4. Sep 2014, 14:36

Und hier kommt die Lösung ( die hoffentlich in den Core einfließt):

contenido/includes/include.con_str_overview.php

Zeile 188

Code: Alles auswählen

$mstr = '<a class="' . $aAnchorClass . '" href="#" title="idcat' . '&#58; ' . $idcat . '">' . $strName . '</a>';
ersetzen gegen:

Code: Alles auswählen

	if($aValue['lang_popup']) $title = $aValue['lang_popup']."\n idcat" . '&#58; '.$idcat;
	else $title = 'idcat' . '&#58; '.$idcat;
        $mstr = '<a class="' . $aAnchorClass . '" href="#" title="'.$title.'">' . $strName . '</a>';
ab Zeile 553 einfügen:

Code: Alles auswählen

// rethus (add a Language-Popup for Categories in Backend) [http://forum.contenido.org/viewtopic.php?f=92&t=35247]
$fallbackLang = getEffectiveSetting('system', 'cat_fallback_language', 1);
if($fallbackLang)
	$sql_lang_popup = "LEFT JOIN {$cfg['tab']['cat_lang']} AS b1 ON( b1.idcat=a.idcat AND b1.idlang=$fallbackLang ) ";
else
	$sql_lang_popup = "";
//rethus end
SQL-Statement in Zeile ab Zeile 565 ersetzen gegen:

Code: Alles auswählen

$sql = "SELECT DISTINCT " .
        "a.idcat, " .
        "a.parentid, " .
        "a.preid, " .
        "a.postid, " .
        "a.parentid, " .
        "b.name, " .
        "b1.name as lang_popup, " .
        "b.idlang, " .
        "b.visible, " .
        "b.public, " .
        "c.level, " .
        "d.idtpl " .
        "FROM {$cfg['tab']['cat']} AS a " .
        "LEFT JOIN {$cfg['tab']['cat_lang']} AS b ON a.idcat = b.idcat " .
        $sql_lang_popup .
        "LEFT JOIN {$cfg['tab']['cat_tree']} AS c ON (a.idcat = c.idcat AND b.idcat = c.idcat) " .
        "LEFT JOIN {$cfg["tab"]["tpl_conf"]} AS d ON b.idtplcfg = d.idtplcfg " .
        "WHERE " .
        "   a.idclient = {$client} " .
        "ORDER BY b.idlang {$sOrder}, c.idtree ASC ";
        $db->query($sql);
Zeile 609 (erste Zeile in While-Schleife) hinzufügen:

Code: Alles auswählen

if ($fallbackLang) $lang_popup=$db->f('lang_popup');
Zeile 634 (nach Zeile mit $db-f->('name');)

Code: Alles auswählen

 
           'lang_popup'=>$db->f('lang_popup'),
Ergebnis ist dies:
Screenshot_002_20140904.jpg
Screenshot_002_20140904.jpg (43.57 KiB) 2412 mal betrachtet
Aktiviert oder Deaktiviert wird dies über ein Parameter in den Systemeinstellungen "Administration ↦ System ↦ Experteneinstellungen":
Screenshot_003_20140904.jpg
Screenshot_003_20140904.jpg (5.74 KiB) 2412 mal betrachtet
Existiert dieser Schlüssel nicht, wird die Übersetzung nicht angezeigt. Existiert der Schlüssel, wird der Wert des Schlüssels als ID für die Sprache genutzt. (Tipp: Oben im Pulldown neben dem Abmeldebutton im Backend steht die Sprache, und dahinter die ID in Klammern).
Could I help you... you can help me... buy me a coffee . (vielen ❤ Dank an: Seelauer, Peanut, fauxxami )

xstable - Onlineshops, Hosting, Domains und Webentwicklung
suther.de - Webentwicklung, IT-Service, IT-Beratung, Linux-Administration

Software... ein Blick wert: GoogleCalender Eventlist, xst_dynamic_contentType

Faar
Beiträge: 1345
Registriert: Sa 8. Sep 2007, 16:23
Wohnort: Brandenburg
Kontaktdaten:

Re: [ADD to CORE] [SOLVED] Kategorie-Baum Multilingual

Beitrag von Faar » Do 4. Sep 2014, 17:12

Das sieht gut aus, wenn das dann so klappt.
Könnte ich fast jetzt schon in der 4.8 gebrauchen :roll:

4fb, könnt ihr das schnell für 4.8 und 4.9 umsetzen? :wink:
Fliegt der Bauer übers Dach, ist der Wind weißgott nicht schwach.

Oldperl
Beiträge: 3989
Registriert: Do 30. Jun 2005, 22:56
Wohnort: Franken, Bayern
Kontaktdaten:

Re: [ADD to CORE] [SOLVED] Kategorie-Baum Multilingual

Beitrag von Oldperl » Do 4. Sep 2014, 18:09

Hallo rethus,

coole Lösung, ich werde das mal in meiner ConLite einbauen. Danke für die Idee. :)

Gruß aus Franken

Ortwin
*NEU* PHP 7.x Community Draft von CONTENIDO 4.9 auf github
CONTENIDO 4.9 Entwickler-Handbuch - Publikation auf medium.com zu meinem angedachten Entwickler-Buch zu CONTENIDO 4.9
ConLite 2.0, alternatives und stabiles Update von Contenido 4.8.x
phpBO Search Advanced - das neue Suchwort-Plugin für CONTENIDO 4.9
Mein Entwickler-Blog

Zuschauer
Beiträge: 140
Registriert: Do 5. Dez 2013, 08:57
Kontaktdaten:

Re: [ADD to CORE] [SOLVED] Kategorie-Baum Multilingual

Beitrag von Zuschauer » Fr 5. Sep 2014, 07:57

Hab mich umentschieden, so ist das doch eine gute Sache :)

Gruß
Zuschauer

rethus
Beiträge: 1820
Registriert: Di 28. Mär 2006, 11:55
Wohnort: Mönchengladbach
Kontaktdaten:

Re: [ADD to CORE] [SOLVED] Kategorie-Baum Multilingual

Beitrag von rethus » Di 15. Nov 2016, 14:02

Hab noch einmal angeregt, das es im Core aufgenommen wird.
Oldperl hat geschrieben:coole Lösung, ich werde das mal in meiner ConLite einbauen. Danke für die Idee. :)
Bitte gern. Ich denke es fließen ja auch Anregungen von ConLite zurück in Contenido, oder?! Somit ist es eine schöne Synergie.
Could I help you... you can help me... buy me a coffee . (vielen ❤ Dank an: Seelauer, Peanut, fauxxami )

xstable - Onlineshops, Hosting, Domains und Webentwicklung
suther.de - Webentwicklung, IT-Service, IT-Beratung, Linux-Administration

Software... ein Blick wert: GoogleCalender Eventlist, xst_dynamic_contentType

Antworten