|
Automatische SpracherkennungWussten Sie, dass Ihre User ihrem Server automatisch mitteilen in welcher Sprache Sie Ihre Site bevorzugen würden? Alle modernen Browser unterstützen diese Funktion, und trotzdem wird sie auf kaum einem Server benutzt.Viele Sites haben deshalb auf ihrer Einstiegsseite eine manuelle Sprachwahl statt nützlicher Informationen. Dies ist für den User uninteressant und für die Positionierung in Suchmaschinen ungünstig, da in beiden Fällen die Information auf der Einstiegsseite am meisten beachtet wird. Auf der Page möchte wir Ihnen eine technische Anleitung zur Verfügung stellen, wie Sie eine automatische Sprachwahl implementieren können. Theorie Mit jedem Zugriff senden Browser wie Internet Explorer oder Netscape neben der gewünschten URL zusätzliche Angaben an den Webserver. Diese beinhalten u.a. die gewünschten Datentypen und Sprachen. Diese Information wird im Accept-Language Header codiert: Accept-Language: de; q=1.0,fr; q=0.9 In obigem Beispiel wünscht der User eine deutschsprachige Seite. Falls diese nicht existiert würde er immer noch eine französische einer anderssprachigen Seite vorziehen. Apache (Multiviews) Der Apache Webserver übernimmt über die Multiviews Funktion die Sprachwahl automatisch. Aktivieren Sie Multiviews in einem .htaccess File: Options Multiviews Falls Sie noch kein .htaccess File haben, dann legen Sie ein solches im Documentroot ihres Webservers an. Für Multiviews muss es lediglich obige Zeile beinhalten. Speichern Sie dann die Seiten für ihre verschiedenen Sprachen in Files mit den Endungen .de, .fr, .it, .en, etc. ab. Für den Fall, dass der User keine von ihnen unterstützte Sprache vorzieht müssen Sie noch eine File ohne Endungen bereitsstellen. Zum Beispiel: index.html.de, index.html.fr, index.html.it, index.html.en index.html index.html könnte ein Softlink auf index.html.de sein. Aufruf: Falls Sie eine Anleitung für den IIS und andere Webserver haben, dann senden Sie uns diese bitte. Wir werden diese mit einem Hinweis auf Sie hier veröffentlichen. Dynamische Seiten (Beispiele in PHP, ASP und ColdFusion) Falls Sie ihre Seiten dynamisch generieren, können Sie den Accept-Language Header direkt interpretieren. In PHP könnte ein Beispiel sein:
/* example: getlanguage("de,fr,it") */
function getlanguage($supported)
{
$l = explode(",", $_SERVER['HTTP_ACCEPT_LANGUAGE']);
while (list($key, $value) = each($l)) {
if (strstr("," . $supported .",", "," . substr($value, 0, 2) . ","))
return substr($value, 0, 2);
}
return "";
}
Die Griesser AG in Aadorf hat uns freundlicherweise folgenden ASP Code zur Verfügung gestellt:<%
'--- Syntax :
'--- mid(String,Startposition,Laenge)
'--- String = Request.ServerVariables("ALL_HTTP")
'--- Startposition = instr(ucase(Request.ServerVariables("ALL_HTTP")))
'--- Laenge = 2 (Intern. LaenderCode 2stellig, +3 Stellen = Sprachspezifikation wie z.B. -CH)
'--- Ausgabe des Ländercode an den Browser
Response.write("Browsersprache ist : " & mid(ucase(Request.ServerVariables("ALL_HTTP")),
(instr(ucase(Request.ServerVariables("ALL_HTTP")),"HTTP_ACCEPT_LANGUAGE") + 21),2))
Response.Write("<br>(C) by Gilbert Herzig, Griesser AG")
%>
Die OneByte GmbH in Wetzikon hat uns freundlicherweise folgenden ColdFusion Code zur Verfügung gestellt:
<!---
Weiterleitung je nach Spracheinstellung im Browser
==================================================
var: CGI.HTTP_ACCEPT_LANGUAGE | string | Bsp: de-ch,fr-ch;q=0.8,fr;q=0.6,it-ch;q=0.4,it;q=0.2
Info: Wenn man als Beispiel alle franzoesischen Sprachen eingestellt hat, liefert die
CGI-Variable HTTP_ACCEPT_LANGUAGE liefert folgenden String:
'fr,fr-ch;q=0.8,fr-be;q=0.7,fr-ca;q=0.5,fr-lu;q=0.3,fr-mc;q=0.2'
Eingestellte Sprachen: Franzoesich (Frankreich) [fr]
Franzoesich (Schweiz) [fr-ch]
Franzoesich (Belgien) [fr-be]
Franzoesich (Kanada) [fr-ca]
Franzoesich (Luxemburg) [fr-lu]
Franzoesich (Monaco) [fr-mc]
Dabei werden alle Sprachen auf EINE gemeinsame franzoesische Seite weitergeleitet! Fuer
laenderspezifische Weiterleitung muesste der Code erweitert/angepasst werden!
(c) 2003 OneByte GMBH e-Business & Webdesign
--->
<!--- Kommagetrennter List-Loop ueber die CGI-Variable --->
<cfloop index="ListItem" list="#CGI.HTTP_ACCEPT_LANGUAGE#" delimiters=",">
<!--- Die ersten 2 Buchstaben checken --->
<cfif Left(ListItem, 2) EQ 'fr'>
<!--- zur franzoesischen Seite weiterleiten --->
<cflocation url="index_franzoesisch.cfm" addtoken="no"/>
<cfelseif Left(ListItem, 2) EQ 'it'>
<!--- zur italienischen Seite weiterleiten --->
<cflocation url="index_italienisch.cfm" addtoken="no"/>
<cfelse>
<!--- default (deutsch) weiterleiten --->
<cflocation url="index_deutsch.cfm" addtoken="no"/>
</cfif>
</cfloop>
|
| © search.ch / Tamedia | Auf Facebook teilen | Mehr Dienste: Immobilien Kino TV ... | Regeln | Werbung | Kontakt |