Yo, bajo mi experiencia (que ciertamente en webs de muchos idiomas no es mucha) te recomiendo usar CONSTANTES y COOKIES.
Por que? Simple:
Las constantes son constantes, el nombre lo indica, si usas variables ya algo va mal: las variables varían, las constantes no: recuérdelo.
Además, simplemente por estilo, es mejor usar constantes que variables. Si no haces esto vas a conseguir liarte entre tantas variables.
Usa un formulario y recojes con $_POST, y en cada página incluyes el archivo. Ej:
include("lenguas/".$_POST['lng'].".php");
Y en cada archivo .php defines las diferentes opciones, como dice SoyJoaquin.
El uso de cookies es simplemente porque a quien le importa el idioma es al usuario. No te merece la pena crear una tabla para guardar IP's y lenguajes, es una tonteria y un gasto de recursos. Crea una cookie con el lenguaje que quieran usar y listo. Otra opción es usar la BD si, pero esto hazlo solo como añadido a un sistema de usuarios. Quiero decir: si ya tienes una tabla para los datos del usuario, no te cuesta nada añadir a esa tabla un campo para el lenguaje, pero en otro caso no es necesario.
Espero que me entiendas,
Un saludo.