Dem letzten Satz stimme ich mal zu - wenn du's aber automatisch erkennen lassen willst, kannst du zum Beispiel auch den $_SERVER-Index HTTP_ACCEPT_LANGUAGE. Der liefert dann eben nur die am Browser eingestellte Sprache. (Sieht leider immer nicht ganz gleich aus, mal heißt's zum Beispiel einfach nur de, mal de,en;q=0.9 - aber wenn du nur die ersten beiden Zeichen nimmst, sollte es zumindest kein Problem sein, den Unterschied zwischen Englisch und Deutsch herauszubekommen.)