Autom. Auswahl der Sprache im Frontend
Verfasst: Di 21. Aug 2007, 14:45
Hallo,
ich hatte einen Kunden der seine Seite in (aktuell) 4 Sprachen anbietet und wollte, das automatisch die Sprache angezeigt wird, die je nach Browsereinstellung am ehesten dem User entspricht.
Hierzu habe ich zuerst die Sprachen im Backend so umbenannt, das sie den Länderkürzeln entsprechen.
z.B.:
de = deutsch
en = englisch
pb = portugiesisch
cz = chinesich
Als Zweites passe ich im Mandanten Ordner die "front_content.php" an.
Und zwar ab dem Block
(ca. Zeile 150)
hab ich folgenden PHP Code geschrieben und eingefügt:
ich hatte einen Kunden der seine Seite in (aktuell) 4 Sprachen anbietet und wollte, das automatisch die Sprache angezeigt wird, die je nach Browsereinstellung am ehesten dem User entspricht.
Hierzu habe ich zuerst die Sprachen im Backend so umbenannt, das sie den Länderkürzeln entsprechen.
z.B.:
de = deutsch
en = englisch
pb = portugiesisch
cz = chinesich
Als Zweites passe ich im Mandanten Ordner die "front_content.php" an.
Und zwar ab dem Block
Code: Alles auswählen
// Initialize language
if (!isset($lang)) {
hab ich folgenden PHP Code geschrieben und eingefügt:
Code: Alles auswählen
##################################################
# wenn keine Sprache definiert ist
# => Sprache an Hand der Browsereinstellung
# $_SERVER["HTTP_ACCEPT_LANGUAGE"] laden
#
# -BEGIN-
##################################################
##################################################
# alle verfügbaren Sprachen laden
##################################################
$sql = '
SELECT
*
FROM
'.$cfg['tab']['lang'].'
WHERE
active = "1"
';
$db->query($sql);
while ($db->next_record())
$myLanguages[strtolower($db->f('name'))] = $db->f('idlang');
##################################################
# gewünsche Sprachen aus
# $_SERVER["HTTP_ACCEPT_LANGUAGE"] laden
##################################################
$accepted_languages = split(',', strtolower($_SERVER['HTTP_ACCEPT_LANGUAGE']));
$preferredLang = null;
foreach($accepted_languages as $aLang)
{
if ($preferredLang === null)
{
##################################################
# Sprachkuerzel finden
##################################################
list($sprachkuerzel, $sprachQ) = split(';', $aLang);
if (array_key_exists($sprachkuerzel, $myLanguages))
{
$preferredLang = $myLanguages[$sprachkuerzel];
}
else
{
list($sprachkuerzel_teil1, $sprachkuerzel_teil2) = split('-', $sprachkuerzel);
if (array_key_exists($sprachkuerzel_teil1, $myLanguages))
{
$preferredLang = $myLanguages[$sprachkuerzel_teil1];
}
}
}
}
if ($preferredLang !== null)
$load_lang = $preferredLang;
##################################################
# wenn keine Sprache definiert ist
# => Sprache an Hand der Browsereinstellung
# $_SERVER["HTTP_ACCEPT_LANGUAGE"] laden
#
# -ENDE-
##################################################