wyndanMedlem sedan okt. 200450 inlägg Tjena!
Vill göra min hemsida på två språk så användare kan växla mellan svenska och engelska, och använda cookies som lagrar vad användaren har valt.
Problemet är att jag redan lagrar en cookie som kommer ihåg vilken css(färgtema) avändaren har valt... så kan man uppdatera cookien så den lagrar både färgtemat och språket?
Eller finns det ett annat smidigare/enklare sätt att låta användaren välja språk?
Scriptet som sätter färgtema-cookien ser ut så här:
styleswitcher.js
/Andreas
WiZzLeRMedlem sedan juni 2002346 inlägg ja, cookien kan ha flera val i cookien.
t.ex setcookie('lang', $_GET['lang'], (time()+2592000), '/', '', 0);
där $_GET['lang'] är kanske en eller sv. Sen kan du kolla mot cookien och om den är inställd på sv så väljer den en svensk språkfil och om det är en så väljer den en engelsk språkfil.
PeddaMedlem sedan juni 20006 032 inlägg En cookie kan bara ha ett värde
setcookie("namn", "värde", "tid", "mapp", "domän", "säkerhet");
Så du får nog sätta två cookies, en för språk och en för tema.
FuelMedlem sedan okt. 20001 285 inlägg Du kan lägga in flera värden .. t.ex separera dom med en pipe och sen köra explode på cookien
$sdata = $_GET['lang']."|".$_GET['style'];
setcookie('settings', $sdata, (time()+2592000), '/', '', 0);
// --------------------------------------------------------------
$prefs = explode("|", $_COOKIE['settings']);
echo $prefs[0]; // är då " sv " och
echo $prefs[1]; // är t.ex " green "
PeeerMedlem sedan mars 20025 907 inlägg
Fuel skrev:
Du kan lägga in flera värden .. t.ex separera dom med en pipe och sen köra explode på cookien
Det går, men varför krångla till det så!? Kör på två cookies istället, användaren kommer säkerligen inte klaga :) CSS-scriptet döper sin cookie till "style" så du kan väl döpa språkcookien till "language" eller något annat lämpligt.
wyndanMedlem sedan okt. 200450 inlägg tack för hjälpen! funkar finfint.. fast min kod känns lite som av ett fulhack..
<?php
$lang = $_GET['lang'];
if ($lang == "sv"){
setcookie('lang',"sv",(time()+2592000));
if ($_SERVER['HTTP_REFERER'] == "http://www.funnygames.se/main.php"){
$href = "start.php";
}
else if ($_SERVER['HTTP_REFERER'] == "http://www.funnygames.se/links.php"){
$href = "lankar.php";
}
else if ($_SERVER['HTTP_REFERER'] == "http://www.funnygames.se/about_us.php"){
$href = "om_oss.php";
}
else if ($_SERVER['HTTP_REFERER'] == "http://www.funnygames.se/advertise.php"){
$href = "annonsera.php";
}
else if ($_SERVER['HTTP_REFERER'] == "http://www.funnygames.se/search.php"){
$href = "sok.php";
}
else{
$href="start.php";
}
}
å sen motsvarande för engelska..
borde väl gå å lösa på ett smidigare sett?
WiZzLeRMedlem sedan juni 2002346 inlägg jag förstår inte riktigt din kod. Om adressfältet är http://www.funnygames.se/main.php så öppnas main.php med svensk text?
man kan göra något i den här stilen:
// om ett värde för getten lang anges så skapas en cookie med värdet.
if ($_GET['lang']) {
setcookie('lang', $_GET['lang'], (time()+2592000), '/', '', 0);
}
// om ett värde för cookien lang finns så sätts variablen $lang till det, annars är standard sv.
if ($_COOKIE['lang']) {
$lang = $_COOKIE['lang'];
} else {
$lang = "sv";
}
/*
alla språkfiler finns i en mapp med ett namn t.ex lang_sv.php
om filen existerar så includas språkfilen annars säger sidan att filen saknas.
*/
$langfile = "languages/lang_" . $lang . ".php";
if (file_exists($langfile)) {
include $langfile;
} else {
echo "language file missing!";
exit;
}
i lang_<prefix>.php så definerar man arrays etcetera.
t.ex
$_LANG['YES'] = "Ja";
$_LANG['NO'] ="No";
När den includeras så ersätts alla $_LANG['YES'] och $_LANG['NO'] på sidan.
OBS! Det här fungerar bara på statisk text.