Sprache wechseln über DropDown Liste

Gesperrt
schlaucher
Beiträge: 444
Registriert: Mi 14. Sep 2005, 10:38
Wohnort: Karlsruhe
Kontaktdaten:

Sprache wechseln über DropDown Liste

Beitrag von schlaucher » So 15. Jan 2006, 14:04

Hallo,

anbei ein kleines Modul, mit dem man die aktive Sprache im Frontend über eine DropDown Liste auswählen kann.

Vielen Dank an HerrB für den Anfangs-Tipp!

Modul ChangeActiveLanguage

Output:

Code: Alles auswählen

<?php 

// alle activen Sprachen ermitteln
$query = "SELECT idlang, name FROM con_lang WHERE active=1 ORDER BY idlang";
// execute query
$db->query($query);

// Listbox erstellen, javascript wird aktiv wenn Wert sich aendert
echo '<div id="LanguageSelect">
      <select name="changeactivelang" onchange="parent.frames.top.location.href = this.value">';

while ( $db->next_record() ) {
   // idlang, name ermitteln
   $c_idlang = $db->f("idlang");
   $c_name = $db->f("name");

   // aktuelle Sprache wird selected
   if ($c_idlang == $lang) {
      $lang_sel = "selected";
   } else {
      $lang_sel = "";
   }

   // Link fuer das wechseln der Sprache wird in value geschrieben
   echo '
   <option value="front_content.php?client='.$client.'&changelang='.$c_idlang.'&parent='.$parent.'&subid='.$subid.'&idcat='.$idcat.'" '.$lang_sel.'  >'.$c_name.'</option>';
}
   echo '
    </select></div>';

?>
Viel Spaß damit
Zuletzt geändert von schlaucher am Mo 16. Jan 2006, 21:14, insgesamt 1-mal geändert.

emergence
Beiträge: 10645
Registriert: Mo 28. Jul 2003, 12:49
Wohnort: Austria
Kontaktdaten:

Beitrag von emergence » Mo 16. Jan 2006, 21:04

ähm bei der menge an javascript würd ich vorschlagen

das javascript gleich wegzulassen und

Code: Alles auswählen

<select name="changeactivelang" onchange="changeActiveLanguage(this.value)">';
durch

Code: Alles auswählen

<select name="changeactivelang" onchange="parent.frames.top.location.href = this.value">';
zu ersetzen...

müsste auch laufen(d.h. ich habs jetzt nicht getestet...)...
*** make your own tools (wishlist :: thx)

schlaucher
Beiträge: 444
Registriert: Mi 14. Sep 2005, 10:38
Wohnort: Karlsruhe
Kontaktdaten:

Beitrag von schlaucher » Mo 16. Jan 2006, 21:12

habs geändert und getestet, funktioniert!

Danke
schlaucher

grete1111
Beiträge: 4
Registriert: So 22. Jan 2006, 16:22
Wohnort: Fügen
Kontaktdaten:

Bin absolut neuling

Beitrag von grete1111 » So 22. Jan 2006, 17:00

Hallo

möchte meine Homepage auf 2 weiteren Sprachen ausweiten ( Kyrillisch und Englisch ) und habe keine Ahnung wie das geht. Ich habe verschiedene Berichte gelesen
wo steht unter Sprachen, neue Sprachen erstellen usw.
aber leider finde ich keinen Punkt mit Sprachen.

Währe sehr dankbar wenn Du mir helfen könntest.

HerrB
Beiträge: 6935
Registriert: Do 22. Mai 2003, 12:44
Wohnort: Berlin
Kontaktdaten:

Beitrag von HerrB » So 22. Jan 2006, 23:58

In Contenido: Administration -> Sprachen...

Gruß
HerrB
Bitte keine unaufgeforderten PMs oder E-Mails -> use da Forum!

Newsletter: V4.4.x | V4.6.0-15 (Module, Backend) | V4.6.22+
Standardartikelliste: V4.4.x | V4.6.x
http://www.contenido.org/forum/search.php | http://faq.contenido.org | http://www.communido.net

grete1111
Beiträge: 4
Registriert: So 22. Jan 2006, 16:22
Wohnort: Fügen
Kontaktdaten:

Beitrag von grete1111 » Di 24. Jan 2006, 20:25

Hallo

Danke,

#ayshe
Beiträge: 445
Registriert: Do 25. Mär 2004, 10:04
Kontaktdaten:

Beitrag von #ayshe » Do 9. Mär 2006, 15:48

emergence hat geschrieben:ähm bei der menge an javascript würd ich vorschlagen

das javascript gleich wegzulassen und

Code: Alles auswählen

<select name="changeactivelang" onchange="changeActiveLanguage(this.value)">';
durch

Code: Alles auswählen

<select name="changeactivelang" onchange="parent.frames.top.location.href = this.value">';
zu ersetzen...

müsste auch laufen(d.h. ich habs jetzt nicht getestet...)...
Im Prinzip hast Du Recht, emergence, aber soweit ich das in Erinnerung habe sind solche Aufrufe nicht XHTML-valide. Das ist natürlich nur für diejenigen von Bedeutung, die valide Seiten produzieren wollen/müssen. :)

Gruß,
Ayshe

emergence
Beiträge: 10645
Registriert: Mo 28. Jul 2003, 12:49
Wohnort: Austria
Kontaktdaten:

Beitrag von emergence » Do 9. Mär 2006, 16:07

öhm

wieso sollte das nicht valide sein ?
bzw.
wo steht das ?
*** make your own tools (wishlist :: thx)

HerrB
Beiträge: 6935
Registriert: Do 22. Mai 2003, 12:44
Wohnort: Berlin
Kontaktdaten:

Beitrag von HerrB » Sa 11. Mär 2006, 21:31

Würde mich anschließen. onchange ist dafür gedacht, direkt JS-Code zu enthalten...

Gruß
HerrB
Bitte keine unaufgeforderten PMs oder E-Mails -> use da Forum!

Newsletter: V4.4.x | V4.6.0-15 (Module, Backend) | V4.6.22+
Standardartikelliste: V4.4.x | V4.6.x
http://www.contenido.org/forum/search.php | http://faq.contenido.org | http://www.communido.net

schlaucher
Beiträge: 444
Registriert: Mi 14. Sep 2005, 10:38
Wohnort: Karlsruhe
Kontaktdaten:

Beitrag von schlaucher » Mo 13. Mär 2006, 09:06

Um XHTML-valide zu sein, muss im Layout dieser Eintrag stehen, dann wird der JS-Code akzeptiert.

Code: Alles auswählen

<meta http-equiv="Content-Script-Type" content="text/javascript" />
Gruß
schlaucher

romaro
Beiträge: 38
Registriert: Mo 21. Nov 2005, 14:33
Wohnort: Erlangen
Kontaktdaten:

xhtml und noch was

Beitrag von romaro » Do 30. Mär 2006, 09:41

Hallo,

zum Thema xhtml:

wenn schon, dann bitte auch die & im option-Tag als & angeben.


kleine Änderung für das Modul:

im select-Befehl sollte der absolute Bezug auf die Tabelle geändert werden, wenn die Erweiterung nicht "con_" ist.

$query = "SELECT idlang, name FROM ".$cfg["tab"]["lang"]." WHERE active=1 ORDER BY idlang";



Gruß


romaro

HorstWetzel
Beiträge: 15
Registriert: Di 17. Jan 2006, 11:47
Kontaktdaten:

mehrere Sprachen ?

Beitrag von HorstWetzel » Mi 5. Apr 2006, 16:05

Hallo,

ich beschäftige mich gerade mit dem Thema Mwehrsprachigkeit in Contenido und suche nach möglichst detaillierten Beschreibungen dazu.

Diese Such gestaltet sich schwieriger als gedacht. Kann mir vielliecht jemand einen Tip geben, wo ich die gesuchten Informationen finden kann?

Ich bin immerhin schon so weit, das ich eine zweite Sprachen-Id angelegt habe. Aber was kommt dann ?

Wo muss ich welche Links und welche php-Programme einbauen, um damit die Umschaltung durchführen zu können?

(Eure Diskussion war zwar recht interessant, für mich aber mangels Vorkenntnissen nicht nachvollziehbar)

Vielen Dank für jeden Hinweis. :wink:

Gruss


Horst

schlaucher
Beiträge: 444
Registriert: Mi 14. Sep 2005, 10:38
Wohnort: Karlsruhe
Kontaktdaten:

Beitrag von schlaucher » Do 6. Apr 2006, 13:00

Hallo Horst,

mit der Mehrsprachigkeit hatte ich am Anfang auch meine Probleme. Aber Dank des Forums und der Dokumentation habe ich dann den Durchblick bekommen.
Die Auswahl der Sprache im Frontend erfolgt über eine Session-Variable. Je nach Wert, werden die Seiten in der einen oder anderen Sprache angezeigt.
Die Sprachvariable muss nicht bei jedem Seitenaufruf mitgegeben werden. Über das Modul wird die Variable neu gesetzt und die Seiten erscheinen in der gewählten Sprache.

Meine Vorgehensweise ist folgende:

1.) Seite in der Standardsprache erstellen

2.) neue Sprache erstellen
Administration / Sprache

3.) Sprache im Backend wechseln (Dropdownliste rechts oben)

4.) Sprache syncronisieren
Content / Artikel
Dort kannst Du auswählen, von welcher Sprache (meisten die Standardsprache) Du syncronisieren möchtest.
Es erscheinen alle Kategorien der Seite (in schönen Rosatönen)
Hinter jeder Kategorie steht zunächst ein "Pfeil" Durch anklicken der Pfeile werden die Kategorien in die neue Sprache übernommen, der Pfeil verschwindet.
Wenn Du nun auf eine syncrnisierte Kategorie klickst, erhälts Du die Liste der vorhanden Artikel. Diese werden ebenfalls mit einem Klick auf den Pfeil übernommen.
Nun kommt die eigendliche Arbeit: Alle Kategorien und Artikel in die gewünschte Spache übersetzen, und online stellen!

fertig!

In deinem Template musst Du nun noch ein Modul einbauen, mit dem Du die Sprache wechseln kannst. Entweder dieses hier oder ein anderes. Das ist Geschmacksache.

Thema Module:
Du musst im PHP Code deiner Module folgende Änderungen vornehmen. Jede Textausgabe, die übersetzt werden soll, wird wie folgt definiert:

Code: Alles auswählen

echo mi18n("Deine Ausgabe");
Alle Textausgaben die so definiert sind, erscheinen im Modul im Bereich "Übersetzung". Wechselst Du nun im Backend in eine andere Sprache, kannst Du dort die Übersetzung vornehmen.

Thema Frontenduser:
Frontenduser, die Zugriff auf einen geschützen Bereich in einer Sprache haben, habe diesen nicht automatisch auch in der anderen.
Über Administration / Frontend / Frontend-Gruppen / Category musst Du in der neuen Sprache dieses Recht neu setzten.

So, ich glaube das war soweit alles. Der Rest kommt beim Probieren und Testen. Hoffe es hilft Dir weiter.

Gruß
schlaucher

HorstWetzel
Beiträge: 15
Registriert: Di 17. Jan 2006, 11:47
Kontaktdaten:

Beitrag von HorstWetzel » Fr 7. Apr 2006, 09:25

Hallo Schlaucher,

erst einmal recht herzlichen Dank für die Antwort. :lol:

Jetzt mache ich mich mal an die Verarbeitung - wird wohl nicht ganz einfach werden :(


Gruss


Horst

Gesperrt