osCommerce ruft beim Öffnen des Shops durch einen Besucher standardmässig die definierte Sprache des Webbrowsers auf. Dies ist für die meisten Anwendungen eine gute Sache – ein Englischsprachiger Besucher bekommt so automatisch die Englische Version des Shops präsentiert.
Praktisch, aber nicht immer erwünscht
Es kann allerdings sein, dass diese automatische Erkennung der Sprache gar nicht erwünscht ist. Wird zum Beispiel ein Shop nur in Deutscher Sprache angeboten – im Hintergrund ist aber auch noch eine englische Version im System vorhanden – so möchte man nicht, dass Besucher überhaupt Zugriff auf die Englische Version bekommen. In diesem Fall hilft eine kleine Änderung im Code Abhilfe. Betroffen davon ist die Datei „application_top.php“, welche sich (zumindest in der Version 2.3.1) im Ordner „includes“ befindet. Hierzu sucht man folgende Stelle im Code (wie bei allen Änderungen am Code ist vorgängig ein Backup absolut zu empfehlen):
if (isset($HTTP_GET_VARS['language']) && tep_not_null($HTTP_GET_VARS['language'])) { $lng->set_language($HTTP_GET_VARS['language']); } else { $lng->get_browser_language(); }
und ersetzt diese mit dem folgenden Code:
if (isset($HTTP_GET_VARS['language']) && tep_not_null($HTTP_GET_VARS['language'])) { $lng->set_language($HTTP_GET_VARS['language']); } else { //$lng->get_browser_language(); $languages_query = tep_db_query("select configuration_value from configuration where configuration_key='DEFAULT_LANGUAGE'"); $defLan = tep_db_fetch_array($languages_query); $lng->set_language("$defLan"); }
Mit dieser Änderung wird beim Start – unabhängig von der eingestellten Sprache des Webbrowsers – immer die Standardsprache des Webshops verwendet.