Dieter Raber: mehrsprachige seite - wie?

Beitrag lesen

Hallo Roger,

Da Du keine Sprache angegeben hast, gehe ich im Moment mal von PHP aus. Wenn Du nur keine Texte hast (Klicken Sie hier, abbrechen etc.), wenn es sich also hauptsaechlich um Formulare und solche Sachen handelt, kannst Du beispielsweise ini-files benutzen und diese mit parse_ini_file() auslesen. Bei grösseren Texten wirst du um eine DV nicht rumkommen. Ich mache das so, dass ich sowohl fuer die ini-Dateien als auch fuer die Felder der Tabelle die gaengigen Abkuerzungen en_GB, de_DE usw. verwende, bei Tabellen eine zusaetzliches ID-Feld. Die Texte speichere ich im Klartext und behandele Sie dann standardmäßig mit htmlentities(). Das Sprachkuerzel kann als Session, Cookie, Get oder Post uebergeben werden, deshalb schaut meine Funktion erst nach, ob es eine Sprachinformation gibt.

Der Aufbau der Funktion, ich lass das mal unabhaengig von der Programmiersprache.

function spracheinbindung(quelle, id)
{
  schau_nach_ob_es_eine_sprachinfo_gibt;
  wenn_nicht_nimm_de_DE;
  wenn_quelle == db, mach_mir ne_query_mit_der_id;
  sonst_parse_das_passende_ini_file;
  pack_das_ergebnis_in_den_array_'lang';
  mache_ein_htmlentities_mit_allen_elemten_des_arrays;

return lang
}

In der PHP-Datei rufe ich die Funktion auf und schreibe anstatt der Texte sowas wie $lang['mein_text'], bzw. $lang[42].

Dieter