Jeg ville nok gøre det lidt anerledes, end at have variabler, som indeholder teksten, men hvis det er det du vil:
Hav en fil for hvert land, hvor du har dine variabler og deres tilsvarende oversatte værdier.
Behold dit nuværende switch-statement, og inkluder hver enkelte sprog-fil ud fra paramteret i http language.
Tilføj her et stykke require, som inkludere filen for det givne land med variabler.
Da variabler kun virker såfremt variablerne er sat, kan du jo sagtens skifte mellem de forskellige sprog-filer.
Kode: Vælg alt
$http_lang = substr($_SERVER["HTTP_ACCEPT_LANGUAGE"],0,2);
switch ($http_lang) {
case 'en':
$SESSION->conf['language'] = 'english';
require ('language.en.php');
break;
case 'es':
$SESSION->conf['language'] = 'spanish';
require ('language.es.php');
break;
default:
$SESSION->conf['language'] = $PREFS->conf['languages'][$SESSION->conf['language_id']];
require ('language.default.php');
}
Herefter skal dine sprogfiler have matchende variabler. Det kunne eksempelvis være følgende:
language.en.php
Kode: Vælg alt
$mainPageHeader = 'Welcome to our site';
$mainPageFooter = 'Copyright © MyCompany';
# [..]
language.es.php
Kode: Vælg alt
$mainPageHeader = ' - Welcome to our site - oversat';
$mainPageFooter = ' - Copyright © MyCompany - oversat';
Herefter udskrives det bare ved at udskrive den variable, som du vil bruge.
Jeg ville dog anvende et array fremfor variabler såfremt dit script skal udvikles således her. Det synes jeg personligt giver et bedre overblik.
Kode: Vælg alt
$LANG = array(
'mainPageHeader' => 'Welcome to our site',
'mainPageFooter' => 'Copyright © MyCompany'
);
Det kan herefter udskrives ved at inkludere filen og herefter
Kode: Vælg alt
echo $LANG['mainPageHeader'];
Vend endelig tilbage, hvis du har nogle spørgsmål / problemstillinger.
vh,