El idioma lo puedes guardar en una session, y puedes crearte una clase para gestionar las traducciones.
Podrias tener una tabla en DB que almacene traducciones en función al idioma, una clave de texto y un dominio.
El dominio podría ser la url de la pagina que estas visualizando ( Sin QueryString ),
La Clave un texto que identifica a la traducción.
Tu tabla puede tener un diseño como el siguiente:
Traductor
Código:
-------------------------------------------------------------------------------------------------------
tra_id | tra_idi_id | tra_clave | tra_valor | tra_dominio
------------------------------------------------------------------------------------------------------------------
1 | 1 | nombre | Su Nombre: | w w w . miweb.com/usuarios/
De esta forma con una clase podrías obtener las traducciones para la interfaz de la siguiente forma:
Translator::getTranslator('nombre');
La clase Translator obtiene el idioma seteado en la session y el dominio acutal y con estos valores mas la clave que lle llega por parámetro haces una query a la DB y retornas el valor.
Esto es muy general, con estos puntos puedes empezar a pensar un poco como llevarlo a cabo.
Espero que te valga. :)