byta språk på hemsidan med hjälp av php

Tråden skapades och har fått 14 svar. Det senaste inlägget skrevs .
1

Måste nästan börja med att säga att jag inte kan mycket om php - jag har gjort ett mailformulär kopplat till en php-sida som jag lyckats styla till med hjälp av css - thats it, resten av min hemsida är ren xhtml/css.

Till saken: jag har plöjt böcker, kollat nätet, allt! utan att hitta en funktion hur man ändrar språk på sin hemsida. Hur funkar det i grunden - gör man indexsidan i html på svenska och 1 exakt likadan indexsida på engelska fast som index.php?

När jag sen trycker på min ursnygga knapp med engelska flaggan, hur ser jag då till att personen kommer till den engelskspråkiga sidan - vad är själva scriptet för att koma dit liksom?:tveksam:

Någon som kan hjälpa mig med det?

Tja, inga problem i sig. Du behöver ha en språkvariabel som ändras med språkbyte. Den kan du antingen skicka med hela tiden eller spara i session eller med cookie. Vilken metod som passar dig bäst beror ju helt på hur du hanterar variabler idag.

Sen är ju frågan hur du hämtar data. Hur hämtar du data?

Oj oj, inte en aning hur jag hanterar variabler. Och hur jag hämtar data - det går väl via crystones mySQL-server antar jag, annars vet jag inte riktigt hur du menar..:">

..men det lättaste låter ju nästan som att ha en indexsida (tex index.php med text på engelska) liggande på servern som man bara hämtar med en knapptryckning ifrån index.htm - och så göra likadant med undersidorna.. Kan man inte göra så med hjälp av ett php-script?

Ja, det finns många sätt att göra samma sak, men jag skulle föreslå något sådant:
index.php?lang=sv
resp
index.php?lang=en
och så gör du om det till en variabel (och t ex en cookie):

// sätt ett default-språk:
$lang = 'sv';
// finns det en kaka? sätt i så fall $lang:
if($_COOKIE['lang']) $lang = $_COOKIE['lang'];
// har fråga efter ett språk gjorts nu? sätt i så fall $lang:
if($_GET['lang']) $lang = $_GET['lang'];
// saknas kaka eller har språket ändrats? spara i så fall kaka:
if(!$_COOKIE['lang'] or $_COOKIE['lang'] != $lang) setcookie('lang',$lang);

och sen i koden finns det olika sätt att hämta data med variabeln $lang. Om du använder dig av ett system som använder en databaslösning idag måste du ta reda på hur det systemet bäst jobbar med språk. Vad använder du för system?

tack tack ninjamac - som vanligt superhjälpsam! Ska prova att leka lite med det scriptet du skrev.

Det finns så många script och tutorials på nätet inom php - men ingen tutorial om hur man ändrar språk, lite konstigt för det borde ju vara ett vanligt behov hos många? (finns, finns det säkert men svårt att hitta iallafall)

systemet som jag är uppkopplad till är en linuxserver på crystone.se som hanterar php 4 och 5, samt mySQL.
Hur ska jag ta reda på hur det systemet jobbar med språk - vad är det exakt jag ska fråga dom menar du?

Saken är den att PHP inte har någon inbyggd hantering utav språk. Det matas ut vad du ber om att det ska matas ut, så du får själv se till så att det kommer rätt saker.

Det ninjamac förmodligen menar är om du kör något befintligt system för innehållshantering (eller vad du nu ska göra), t ex Drupal, Joomla, Wordpress eller dylikt.

Använder du en egen-konstruerad databas eller något befintligt system?

Nej ingen egen-konstruerad databas, och inget drupal, joomla ell. liknande heller. Bara php..

..och html o css så klart.

okej, så du hårdkodar dina html-sidor? I så fall antar jag att du planerar att skapa olika versioner av sidorna för olika språk? Fast då skulle du ju inte behöva språkhantering ifrån php.. Förstår nog inte vad du egentligen är ute efter..

Ja precis, jag kodar förhand i editorn "Coda". Det är en rätt så basic hemsida med en indexsida och 2 sidor till, där jag ska ha bla. portfolio och liknande.

Så jag har min indexsida på svenska, också kopierar jag den och bara byter ut texten till engelska, så vips så har jag ju två indexsidor, en på eng o en på svenska. Frågan är hur besökaren ska kunna skifta mellan dom sidorna (den engelska och den svenska versionen av indexsidan alltså..) Då måste man väl använda sig av php..??

..den finns på simplethings.se eller faersen.com om du vill kolla på sajten

Tja, du behöver styra antingen val av innehåll eller val av sida. Om du t ex har en sida som heter index.html och en som heter index_en.html så behöver du ju ingen php. Du lägger ju bara länkar mellan sidorna då.

Annars kan du ju generera bägge språk i samma sida, typ:
index.php och index.php?lang=en
där du har en default:
if(!$lang) $lang = 'sv';

if($lang == 'sv') echo $swedish_texts;
if($lang == 'en') echo $english_texts;

Detta går att göra mycket elegantare, men där har du principen

Aaah, fy f-n va jag har varit korkad - ja det är ju klart att jag bara kan länka så klart!
Alltså jag förstår inte varför jag snöade in så totalt på att man behövde nån form av script-språk som php för att skifta språk..:confused:

Tack tack för all hjälp!

1
Bevaka tråden