Teoricamente, en una Internet ideal, el dns1 equivale al país del usuario, por lo que ttd.telefonica.net sería del país Networks
Eso es lo malo de resolver el país.
De todos modos, aquí se trata de resolver el idioma, que es algo totalmente distinto.
El código de univercity está muy bien para alguien que:
1. Sólo haya definido un idioma
2. Ha definido varios idiomas, pero el primero es válido.
Sin embargo, imaginemos un usuario con:
HTTP_ACCEPT_LANGUAGE = "ca, es;q=0.66, en;q=0.33"
Que visita una web en español, inglés, francés y alemán, con inglés como idioma por defecto.
Según el código de univercity, ese usuario iría a la web en inglés porque "ca" no tiene una web en su idioma.
Lo ideal sería convertir HTTP_ACCEPT_LANGUAGE en una lista o un array que contuviera (ca,es,en) y entonces recorrerla del modo:
ca -> No válido, seguimos
es -> Válido, mostramos página en español