Panelen



Forumnavigering
Senast inloggade
RSS
Sponsorer

Forum > Övriga serverspråk > PHP

Byta språk på sidan med hjälp av php?

Orixeds
Orixeds

Gradering

#20457

Hej!

Finns det någon funktion som gör att man kan byta språk från t ex engelska till svenska med hjälp av klicka på en länk där det står typ "Svenska"?

Fungerar det med str_replace? Om inte hur ska man göra?

Tacksam för svar

Taggar: language, php, språk,
ID: #20457 | Skapades: 2010-12-08 21:27:44 | Tråden har 6 svar och har lästs 319 gånger.

skapa en fil som heter swe.php och lägg in all översättning i en array.
Finns andra sätt att översätta också, men detta är nog det enklaste sättet.

Exempel på ur det kan se ut i en sådan fil.

$lang['title'] = 'Titel';
$lang['name'] = 'Namn';

Kan man inte läsa och förstå min kod, kan man inte programmera - Christher Lenander
ID: #20458 | Skapades: 2010-12-08 21:54:27

Oggeh
Oggeh

Gradering

#20459

Jag använde samma teknik som Christer beskrev och tycker det funkar prima, byter sedan språk-fil med cookies.

http://www.elatus.se - http://www.design-sector.se
ID: #20459 | Skapades: 2010-12-09 01:30:56

Shadi
Shadi

Gradering

#20461

Jag brukar använda liknande metod, men däremot använder jag databasen för att lagra informationen. D.v.s:

tbl_language
----------------
_id    _name
1    Svenska
2    English


tbl_translation
----------------
_id    _languageid    _section    _text
1    1        form        Användarnamn
2    1        form        Lösenord
3    2        form        Username
4    2        form        Password


Så när jag ska hämta datan så kör jag en enkel SQL-sats. Det som man behöver veta är helt enkelt vilket språk som ska användas, i detta fall är det ID=1 (Svenska) eller ID=2 (Engelska). Den informationen kan du spara i en cookie, session eller på ett annat sätt, t.ex. att spara i databasen.

Sen är det bara att hämta informationen. Jag använder mig i ett projekt av "sections", d.v.s. att olika delar av projektet har olika översättningar, men det är från projekt till projekt. Du kanske inte ens behöver "_section". SQL-koden kan se ut så här:

SELECT _name 
FROM tbl_translation
WHERE _section = 'form' AND _languageid = 1


Du kan också JOINa in tbl_language för att vara säker på att språket finns:

SELECT tra._name 
FROM tbl_translation AS tra
JOIN tbl_language AS lng ON lng._id = tra._languageid
WHERE tra._section = 'form' AND tra._languageid = 1


Du kan också använda dig av XML-filer för att lagra information. Principen är den samma som mitt exempel och chrillemeters.

Administratör på AspKoll.se!
ID: #20461 | Skapades: 2010-12-09 15:52:21

Marine
Marine

Gradering

#20463

något sådant:

index.php?lang=sv

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);

ID: #20463 | Skapades: 2010-12-09 16:36:04

LP_MAXI
LP_MAXI

Gradering

#20464

Shadis sätt låter smart tycker jag. Men Wordpress har ju tex språkkfiler som innehåller tex svenska språket i en specifik fil för svenska. 

Du kanske kan undersöka hur Wordpress löser det och använda den metoden? Går nog att Googla fram hur dom gör. 

http://www.lpmaxi.se/
ID: #20464 | Skapades: 2010-12-09 17:04:26

CakePHP som jag använder mycket, har också som WordPress så kallade .po filer, som man
ser ut så här.

msgid "Welcome"
msgstr "Välkommen"

Kan man inte läsa och förstå min kod, kan man inte programmera - Christher Lenander
ID: #20466 | Skapades: 2010-12-10 15:18:27
© Copyright 2007-2009 Shadi Domat | Version 3.0 | Sidkarta | Policy