Sprachauswahl über Dropdown-Box

Bei Problemen/Anregungen mehrsprachiger Webseiten.

Sprachauswahl über Dropdown-Box

Beitragvon mikettel » 6. Feb 2006, 18:27

Hallo und erstmal ein soooooo großes Lob für redaxo. Ich probiers gerade das erste Mal aus und bin hellauf begeistert! :D

Aber. Ich habe auch gleich ein Problem :)

Ich muss eine Seite in 8 Sprachen realisieren. An sich auch kein Problem, allerdings möchte ich die Sprachwahl über eine Dropdown-Box realisieren.

Geht das? Ich habe jetzt schon eine Weile rumgebastelt und es nicht hinbekommen. Hat das schon mal jemand gemacht und kann mir helfen?

Viele Grüße
Michael
mikettel
 
Beiträge: 29
Registriert: 6. Feb 2006, 18:20
Wohnort: Reutlingen (BW)

Beitragvon Markus.Staab » 6. Feb 2006, 18:32

Hi Michael,

Willkommen in der REDAXO Familie!

Welchen Vorteil versprichst du dir davon, wenn die Sprachauswahl via DropDown Möglich ist? Prinzipiell finde ich die akutelle Darstellung sehr gut.

Viele Grüße,
Markus
Benutzeravatar
Markus.Staab
Entwickler
 
Beiträge: 9781
Registriert: 29. Jan 2005, 14:50
Wohnort: Aschaffenburg/Germany

Beitragvon Thomas.Blum » 6. Feb 2006, 18:53

Hej,

meinst du die Sprachauswahl im Backend (Redaxo) oder die im Frontend (Webseite)?

vg Thomas
blumbeet - web.studio - Dresden - 0351 217 6225
webbude - Blog über CSS.XHTML.REX
Ein Wunschzettel
Benutzeravatar
Thomas.Blum
Entwickler
 
Beiträge: 4670
Registriert: 24. Aug 2004, 21:11
Wohnort: Dresden

Beitragvon Gast » 6. Feb 2006, 19:01

Vielen Dank für die schnellen Antworten!

@tbaddade
Die im Frontend. Der Grund: Wenn ich 8 Sprachen darstelle, muss ich irgendwie Platz sparen. Ein Dropdown-Menü ist da denke ich ideal.

@kills
Was meinst Du mit der aktuellen Darstellung?

Grüße
Michael
Gast
 

Beitragvon mikettel » 6. Feb 2006, 19:03

Hoppla, da war wohl der Session-Timeout überschritten... Der obige Beitrag ist auch von mir... sorry
mikettel
 
Beiträge: 29
Registriert: 6. Feb 2006, 18:20
Wohnort: Reutlingen (BW)

Beitragvon Markus.Staab » 6. Feb 2006, 19:26

Hi Mike,

wenn es dir nur um die Sprachauswahl im Frontend geht (woran ich gar nicht gedacht habe ;)), dann solltest du das doch mit einem ganz einfach HTML Dropdown geregelt bekommen.

Einfach alle $REX['CLANG'] Werte auslesen und entsprechend die Dropdown Box füllen :).

Wenn du noch weitere Fragen hast, immer raus damit!

Gruß,
Markus
Benutzeravatar
Markus.Staab
Entwickler
 
Beiträge: 9781
Registriert: 29. Jan 2005, 14:50
Wohnort: Aschaffenburg/Germany

Beitragvon mikettel » 6. Feb 2006, 20:02

So Ich hab jetzt eine Weile gebastelt und folgende Lösung hinbekommen (ist jetzt mal nur für 3 Sprachen um das Prinzip zu zeigen):

Code: Alles auswählen
<div id="sprachwahl">
   <form action='index.php'>
      <?
         /* deutsch */
         if ($REX['CUR_CLANG']==0)  {    echo "Sprache ";   }   
         /* english*/
         if ($REX['CUR_CLANG']==1)  {    echo "Language ";   }   
         /* spanisch*/
         if ($REX['CUR_CLANG']==2)  {    echo "Lingo ";   }               
      ?>   
       <select size="1" onChange="jumpMenu('parent',this,0)">
         <?php
            /* deutsch */
            if ($REX['CUR_CLANG']==0)  {
                echo "<option value=".rex_getUrl($this->getValue("article_id"),"0").">deutsch</option>";
                echo "<option value=".rex_getUrl($this->getValue("article_id"),"1").">english</option>";
                echo "<option value=".rex_getUrl($this->getValue("article_id"),"2").">espaniol</option>";
            }
            /* english */
            if ($REX['CUR_CLANG']==1)  {
                echo "<option value=".rex_getUrl($this->getValue("article_id"),"1").">english</option>";
                echo "<option value=".rex_getUrl($this->getValue("article_id"),"0").">deutsch</option>";
                echo "<option value=".rex_getUrl($this->getValue("article_id"),"2").">espaniol</option>";
            }   
            /* espaniol */
            if ($REX['CUR_CLANG']==2)  {
                echo "<option value=".rex_getUrl($this->getValue("article_id"),"2").">espaniol</option>";
                echo "<option value=".rex_getUrl($this->getValue("article_id"),"0").">deutsch</option>";
                echo "<option value=".rex_getUrl($this->getValue("article_id"),"1").">english</option>";               
            }                        
         ?>
       </select>
       <!-- <input type='submit' /> -->
   </form>   
</div>


Das zugehörige kleine JavaScript sieht so aus:
Code: Alles auswählen
<script language="JavaScript">
   <!--
      function jumpMenu(targ,selObj,restore){
        eval(targ+".location='"+selObj.options[selObj.selectedIndex].value+"'");
        if (restore) selObj.selectedIndex=0;
      }
   //-->
</script>


Damit kann man jetzt aus einer DropDown Box die gewünschte Sprache wählen und die Seite wird direkt aufgerufen. Anschliessend ist die aktuelle Sprache immer als ganz oben im Menü.

Im Prinzip wars ja doch nicht so kompliziert, wie ich zuerst gedacht habe... Sorry für den ganzen Quelltext in diesem Beitrag, aber vielleicht hilft es ja irgendwann mal jemandem...

Danke für eure Antworten :D

CU later
Michael
Zuletzt geändert von mikettel am 6. Feb 2006, 20:32, insgesamt 1-mal geändert.
mikettel
 
Beiträge: 29
Registriert: 6. Feb 2006, 18:20
Wohnort: Reutlingen (BW)

Beitragvon Markus.Staab » 6. Feb 2006, 20:22

Hi Michael,

toll, dass du deine Lösung hier postest.
Die Community dankt es :).

Wegen deiner Sprachspezifischen "Worte" im Template:
Schau dir mal das opf_lang Addon an.

Damit kann man "Variablen" einführen und diese aus dem Backend aus mit Werten versehen.

Gruß,
Markus
Benutzeravatar
Markus.Staab
Entwickler
 
Beiträge: 9781
Registriert: 29. Jan 2005, 14:50
Wohnort: Aschaffenburg/Germany

Beitragvon svenalbert » 6. Feb 2006, 20:45

bevor ich kurz mecker, wollte ich noch sagen, daß ich diese idee richtig cool finde.
mikettel hat geschrieben:Anschliessend ist die aktuelle Sprache immer als ganz oben im Menü.

was mir als nutzer deiner seite allerdings nicht so sehr gefallen würde, ist die ständige uMordnung der punkte in dem dropdown.
ich glaube es ist besser eine anordnung beizubehalten und die aktuelle sprache über selected="selected" anzuzeigen.

so genug gemeckert, top idee.

Sven
Benutzeravatar
svenalbert
 
Beiträge: 1295
Registriert: 24. Nov 2005, 16:21
Wohnort: Clausthal-Zellerfeld / lower saxony

Beitragvon mikettel » 7. Feb 2006, 21:58

Hi Sven,

Ich hab gedacht, ich zeig die Sprache, in der die Seite gerade angezeigt wird, als erste an. Was genau meinst Du mit selected="selected"? Ich muss halt dumm fragen, weil ich erste seit zwei Tagen mit redaxo rumbastel (und das immer abends nach der Arbeit, wo die Aufnahmefähigkeit sowieso am Ar... ist :) ) und noch überhaupt keine Ahnung habe...

@kills: werd ich gleich mal danach suche (opf_lang). Thanks

Grüße...
mikettel
 
Beiträge: 29
Registriert: 6. Feb 2006, 18:20
Wohnort: Reutlingen (BW)

Beitragvon Thomas.Blum » 7. Feb 2006, 22:02

Hej Michael,

wenn du ein solch ein Option in einem Select hast

Code: Alles auswählen
<option value="english" selected="selected">Englisch wählen</option>


dann wird diese selektiert, heisst es ist ausgewählt unabhängig an welcher Stelle es in der Liste steht

vg Thomas
blumbeet - web.studio - Dresden - 0351 217 6225
webbude - Blog über CSS.XHTML.REX
Ein Wunschzettel
Benutzeravatar
Thomas.Blum
Entwickler
 
Beiträge: 4670
Registriert: 24. Aug 2004, 21:11
Wohnort: Dresden

Beitragvon mikettel » 7. Feb 2006, 22:08

@tbaddade: :) na klar. Bin mal wieder auf dem Schlauch gestanden und hab vor lauter Bäumen den Wald nicht mehr gesehen...

Ich habe mir auch mal die Beschreibung des opf_lang Addons angeschaut. Das sieht ja super aus und vor allem bekomme ich damit saubereren (gibt es das Wort?) Code. Nur: Wie installiere ich das? Einfach irgendwohin entpacken?

Thanks...
mikettel
 
Beiträge: 29
Registriert: 6. Feb 2006, 18:20
Wohnort: Reutlingen (BW)

Beitragvon Thomas.Blum » 7. Feb 2006, 22:10

Hej,

das ganze entpacken und dann unter /redaxo/include/addons/ auf den server laden.

dann im backend das addon installieren und aktivieren.

vg Thomas
blumbeet - web.studio - Dresden - 0351 217 6225
webbude - Blog über CSS.XHTML.REX
Ein Wunschzettel
Benutzeravatar
Thomas.Blum
Entwickler
 
Beiträge: 4670
Registriert: 24. Aug 2004, 21:11
Wohnort: Dresden

Beitragvon mikettel » 7. Feb 2006, 22:26

Hey wow ist das cool. Ein Platzhalter, dessen Wert für die entsprechende Sprache über das Backend konfiguriert werden kann. Funktioniert auf Anhieb super!!!

Wenn das weiterhin alles so toll klappt brauche ich in zukunft kein typo3 mehr :)

Thanks again
mikettel
 
Beiträge: 29
Registriert: 6. Feb 2006, 18:20
Wohnort: Reutlingen (BW)

Beitragvon svenalbert » 8. Feb 2006, 16:39

mikettel hat geschrieben:Ich hab gedacht, ich zeig die Sprache, in der die Seite gerade angezeigt wird, als erste an. Was genau meinst Du mit selected="selected"?

sorry, ich guck grad erst wieder rein. aber thomas hat es schon richtig "übersetzt" was ich gemeint hatte.

Sven
Benutzeravatar
svenalbert
 
Beiträge: 1295
Registriert: 24. Nov 2005, 16:21
Wohnort: Clausthal-Zellerfeld / lower saxony


Zurück zu Mehrsprachigkeit [R3]

Wer ist online?

Mitglieder in diesem Forum: 0 Mitglieder und 1 Gast