minulla on kotisivuilla(koti.mbnet.fi/jan87jan) "nurkka"-sivulla "alasvetovalikko", josta vaihdetaan kieli. se toimii siten että se vaihtaa kielen, mutta valittuun kieleen ei pysty menemään uudestaan, kun vaihtaa kielen, koska siinä näkyy aina se finnish, vaikka olisi englannin kielisillä sivuilla.
Siinä pitäisi olla se kieli valittuna, jossa ollaan. Miten sen sais toimii tollee, voisko esim. JOSsitella.
Esim. JOS sivulla ENG valikosta valittu English tai JOS sivulla SWE valikosta valittu Finnish.
En ehkä ymmärtänyt kysymystä täysin oikein mutta kokeillaan
<?php // Luodaan kielialkiot $kielet = array("fi","se","en"); // Luodaan option-lista foreach ($kielet as $kieli) { $selected = ""; // Jos kieli löytyy session-muuttujasta if ($kieli == $_SESSION['kieli']) { // On valittu $selected = ' selected="selected"'; } // Listaan lisäys $kielilista .= "<option value=\"{$kieli}\"{$selected}>{$kieli}</option> "; } // Koko mössö ulos print <<<EOT <select name="lankuaakki"> {$kielilista} </select> EOT; ?>
<HTML><HEAD> <TITLE>Jan Koro</TITLE> </HEAD> <BODY bgcolor="black" text="white"> You can change language:<select onChange="top.location.href=this.options[this.selectedIndex].value"> <option value="indexNL.html">Dutch</option> <option value="indexENG.html">English</option> <option value="indexEST.html">Estonian</option> <option value="index.html">Finnish</option> <option value="indexGER.html">German</option> <option value="indexITA.html">Italian</option> <option value="indexSPA.html">Spanish</option> <option value="indexSWE.html">Swedish</option> <option>--------------------</option> <option selected> <?php if("Location: indexNL.html") { print("DUTCH"); } if("Location: indexENG.html") { print("ENGLISH"); } if("location: indexEST.html") { print("ESTONIAN"); } if("location: index.html") { print("FINNISH"); } if("location: indexGER.html") { print("GERMAN"); } if("location: indexITA.html") { print("ITALIAN"); } if("location: indexSPA.html") { print("SPANISH"); } if("location: indexSWE.html") { print("SWEDISH"); } ?> </option> </select> </BODY></HTML>
se lähdekoodi on nyt tommonen ja se tulostaa noi kaikki kielet yhteen DUTCHENGLISHESTONIAN.....?
miten muutan?
Tota, mä vääntäisin alusta asti uudestaan käyttäen hyödyksi enemmän php:tä (jos olisi oma sivu), mutta muuta toi järkyn pitkä if-koodihässäkkä seuraavaan muotoon:
// Poimitaan se maatunnus koko höskästä $ekajaraytys = explode(".", $_SERVER['REQUEST_URI']); $maatunnus = explode("index", $ekajaraytys[0]); switch($maatunnus[1]) { case "NL": $maakutsuu = "DUTCH"; break; case "ENG": $maakutsuu = "ENGLISH"; break; // Ja tätä selkokielistä tekstiä jatkuu peräti seitsemän // sivun verran kunnes tulee case "SWE": $maakutsuu = "SWEDISH"; break; default: $maakutsuu = "FINNISH"; break; }
casejen väliin voi toki tunkea myös muuta ohjelmallisuutta, mutta tuo toimii ainakin melkein hyvin sun järjestelmässä.
Suosittelen kyllä pähkäilemään systeemiä taitojen kehittyessä uudestaan, pitemmän päälle ei ole järkevää veivata joka kieltä varten hirvittäviä switch-case-hässäköitäkään.
Aihe on jo aika vanha, joten et voi enää vastata siihen.