15. april 2007 - 20:50Der er
8 kommentarer og 1 løsning
Vælge andet sprog?
Hej.
Jeg skal have lavet en hjemmeside med minimum 2 sprog. Hvordan gør jeg det nemmest. det er ikke et problem at lave sessionen som der bliver sat til Dan eller Eng .. mit problem er at gøre det med databasen.. Hvad er nemmest?
Er det at have to databaser til siden? - bliver det så ikke at problem at lave så man både kan smide dk og eng tekst op med adminfunktionen på samme tid?
Eller er det at lave et ekstra felt til hver variable i tabellen i min db? altså under forside så have et felt der hedder tekst_dk og tekst_eng .. men hvordan får jeg siden til at hente de rigtige dataer ud i min query ??
Du kunne f.eks. lave det med en tabel! I den tabel kunne du så have et felt ID, dansk og engelsk
1, velkommen, welcome Så bruger du data fra tabellen, hvor id = 1 til at skrive velkommen, alt efter hvad brugeren har valgt af sprog. Man kan også lave det med 2 databaser, og så vælge databasen som passer til ens sprog som du selv er inde på.
Ja det du skriver først er det jeg skriver her "Eller er det at lave et ekstra felt til hver variable i tabellen i min db?" - mit problem er bare hvordan skulle den finde ud af at den skal tage feltet dansk hvis den står til Dan i session og engelsk hvis der står Eng? - så skal jeg jo lave noget ala:
if ($sprog == "dan") { $query = mysql_query("SELECT tekst_dk FROM tabel"); $row = mysql_fetch_array($query); $bla= $row['bla']; } else { if ($sprog == "eng") { $query = mysql_query("SELECT tekst_eng FROM tabel"); $row = mysql_fetch_array($query); $bla= $row['bla']; } - hvergang at man skal hente noget.. det er jo bare meget spilde kode er det ikke?
Og det andet med to databaser var det jeg syntes var det mest oplagte så kunne man have to db.php filer.. en db_dk.php og en db_eng.php, men jeg får jo så et lille problem hvis jeg skal kunne rette i begge databaser på engang? som ville se sådan ud
den går ikke helt den med $_SERVER["HTTP_ACCEPT_LANGUAGE"] desværre.. og det er en halv stor side som skal laves, og hvis jeg skulle lave en ekstra tabel til hver side på siden så bliver det en kæmpe database, så det tror jeg ikke det skal være.
Dog er det ikke en så stor side som jeg skal lave. Men alligevel så synes jeg det biver besværligt..
men jeg kan jo godt lave lige som dig showsource med $webside = mysql_query("SELECT * FROM forside_". $default ."") or die (mysql_error()); hvor den bare tjekker min session. så skal den bare se sådan her ud:
$webside = mysql_query("SELECT tekst__". $default ." FROM forside") or die (mysql_error());
Hvis man gemmer de forskellige tekster i DB, vil det jo fylde. Hvis der laves en tabel for hvert sprog, er det jo kun selve tabel/feltnavne som er ekstrafyld.
Mængden af indhold vil jo være det samme?
Og m.h.t. brugen af $_SERVER["HTTP_ACCEPT_LANGUAGE"] kan den jo bruges hvis f.eks. der ikke er sat en cookie, for at vælge et default sprog.
At brugeren måske nok er dansker, men bruger en browser hvis første værdi er engelsk kan man jo ikke vide, men blot for at vælge sprog.
Måske også noget "ip-lookup" kan bruges til at definere default sprog.
Og umiddelbart ville jeg nok lave det med en get variabel,
Ja men det er mere med overskueligheden og så det med at skulle gemme flere sprog på en gang i adminsektionen. og det gør det mere besværligt hvis der er 3 tabeller med 3 forskellige id'er som der skal gemmes i, men en god mulighed som jeg skriver oppe ovenover ville være dette: $webside = mysql_query("SELECT tekst_". $default ." FROM forside") or die (mysql_error());
Det var heller ikke detjeg var enig i med kimox, $_SERVER["HTTP_ACCEPT_LANGUAGE"] kan sagtens bruges, men problemet er bla. at det er et dansk firma i grækenland som har en .com side.. så det bliver meget rodet, så jeg laver den bare dansk så snart man kommer ind på siden, og så kan man ændre det med flag i det ene hjørne.. Det bliver så gemt i en session. :)
Tilladte BB-code-tags: [b]fed[/b] [i]kursiv[/i] [u]understreget[/u] Web- og emailadresser omdannes automatisk til links. Der sættes "nofollow" på alle links.