Wie geht das denn über die Browsereinstellung???
http accept language ist vermutlich der beste kompromiss
http://www.w3.org/International/questions/qa-accept-lang-locales
wies mit dem apache funktioniert, wird hier erklärt
http://httpd.apache.org/docs/2.2/content-negotiation.html
im grunde brauchst du etwa 5 zeilen in der server config (oder in einem .htaccess-file) und pro sprache rund 3 zeilen in einem .var-file
falls der besucher dann trotzdem die sprache wechseln möchte, bietest du ihm natürlich irgendwo einen sprachwechsler an