Woher ein Surfer "kommt", kann man nicht (oder nur sehr aufwendig anhand seiner IP-Adresse) ermitteln. Der Browser meldet aber dem Webserver jeweils, welche Sprache(n) er bevorzugt. Hier der Beispielcode aus meinem letzten mehrsprachigen Projekt:
Das ist vb.net und steht in der Session_Start Prozedur, damit die Spracheinstellung dann für die ganze Session (auf IIS) zur Verfügung steht.
CODE
Dim i As Integer
For i = 0 To Request.UserLanguages.Length - 1
If Request.UserLanguages(i).StartsWith("fr") Then
Session("Lang") = "F"
Exit For
ElseIf Request.UserLanguages(i).StartsWith("it") Then
Session("Lang") = "I"
Exit For
Else 'default german
Session("Lang") = "D"
End If
Next
Mit Javascript kannst man den Wert navigator.userLanguage abfragen. Darin sollte z.B. "de-ch" stehen, was bedeutet der Browser ist deutsch und das System hat die Ländereinstellung Schweiz.
Persönlich habe/hatte ich bei einem Projekt eine ähnliche Problemstellung. Allerdings haben wir uns dann recht schnell entschieden die Sprachzuweisung nicht automatisch zu machen. Der Grund war dass doch einige Besucher aus dem Land A kamen aber eigentlich die Infos für Land B ansehen wollten.