Mehrsprachigkeit

Weiterführende Themen

Nutzung von mod_menu zur Realisierung von mehrsprachigen Webauftritten

Soll eine Webseite in mehreren Sprachen zur Verfügung gestellt werden, dann können diese natürlich gemeinsam auf jeder Seite angeboten werden. Dabei stellt sich aber spätestens bei interaktiven Inhalten die Problematik, daß man die Sprachen doch lieber trennen würde oder sogar einzelne Inhalte oder Inhaltsbereiche nur in bestimmten Sprachen zur Verfügung stellen möchte oder kann, ohne dadurch anderssprachige Besucher offensichtlich zu benachteiligen.

Hier bietet mod_menu ein umfangreiches Paket an Steuerungen an, durch die ein Webauftritt sehr einfach mehrsprachig auslegbar ist.

Dabei wird nur die Navigation des entsprechenden Sprachzweiges angezeigt. Eine dazu passende Navigationsstruktur muß jeweils einen Zweig für die gewünschte Sprache beinhalten, z.B.: 

Dabei enthalten die Navigationspunkte de/en/fr/etc. selbst keine Rubriken, diese liegen in den Unterpunkten!!!

Wird die Mehrsprachigkeit in den Einstellungen aktiviert, dann wird nur der zur Sprache der derzeit angezeigten Seite gehörende Navigationszweig angezeigt. Dadurch können die einzelnen Sprachzweige verschiedene Umfänge aufweisen und können auch völlig unterschiedlich strukturiert sein.

Natürlich kann man durch entsprechende Links dem Besucher die verschiedenen Sprachzweige (also einfach jeweils einen Link auf die Startrubrik des Sprachzweiges) anbieten.

Zusätzlich kann vollautomatisch durch die Browserkennung (sog. accepted languages) der korrekte Sprachzweig beim Aufruf der Website ermittelt und angesteuert werden. Dafür müssen die Sprachzweige als Namen die Länderkennung erhalten, also z.B. de für den deutschen Sprachzweig, es für den spanischen, en für den englischen etc.

Dazu muß die index-Datei im ConPresso-Hauptverzeichnis, die normalerweise auf die gewünschte Startrubrik weiterleitet, ein wenig modifiziert werden, damit die Startrubrik sprachabhängig angesteuert wird.

Wenn dies der normale Inhalt von index.php ist

...
define('CPO', true);
require_once('_include/common.inc.php');
if (SID!='')
    header('Location: '.BASE_ABS.$cpoSystem['homepage'].(stristr(BASE_ABS.$cpoSystem['homepage'], '?')===FALSE ? '?'.SID : '&'.SID));
else
    header('Location: '.BASE_ABS.$cpoSystem['homepage']);
?>
<html>
<head>
    <title>Redirect to admin login</title>
</head><body>
You are not supposed to be here.
Please log in using the
<a href="<?php print(BASE_REL.'_admin/index.php'); ?>">admin interface</a>.
</body></html>

dann wird dieser geändert zu

...
define('CPO', true);
require_once('_include/common.inc.php');
include($mod_menu_lang_redirect);
?>
<html>
<head>
    <title>Redirect to admin login</title>
</head><body>
You are not supposed to be here.
Please log in using the
<a href="<?php print(BASE_REL.'_admin/index.php'); ?>">admin interface</a>.
</body></html>

Sollte die Ermittlung erfolglos sein oder kein entsprechender Sprachzweig vorhanden sein, dann wird auf die in den Systemeinstellungen von ConPresso eingestellte Rubrik weitergeleitet.