el aproximamiento correcto ante estos escenarios ( y en general para todo tipo de escenarios ) es utilizar el patron de programacion Modelo Vista Controlador.
Una vez que tienes todo separado y encapsulado, el cambiar LA VISTA segun el idioma del usuario es una cosa trivial.
en castellano
http://es.wikipedia.org/wiki/Modelo_Vista_Controlador
y en ingles
http://en.wikipedia.org/wiki/Model-view-controller