Hola Neo:
No llevo mucho en esto de php, pero más o menos te puedo dar la idea
de como yo he hecho algo similar, pero no con idiomas, pero intentaré
explicarlo con tu ejemplo. Ten en cuenta que mi estilo no será muy
académico, pero de momento me funciona y ya iré aprendiendo poco a
poco.
Cuando dices que no sabes como elegir la tabla, me genera la duda de a
que te refieres, aunque intuyo que quieres saber como hacer que al
pinchar en un idioma te aparezca en ese idioma. Es decir, cual es la
mecánica. A lo mejor te suelto un rollo y no es lo que pides. Si es
así, me lo dices y lo pulimos.
Para probar algo sencillo, montate una página web sencilla con, por
ejemplo, tres enlaces, CASTELLANO, INGLÉS y FRANCÉS, por ejemplo.
Ahora nos creamos una regla, y es que por ejemplo, si una variable,
$idioma, tiene un 1, es CASTELLANO, 2 es INGLÉS y 3 es FRANCÉS. Le
llamas index.php y vamos a jugar.
Los enlaces HTML serían del estilo:
<a href="index.php?idioma=1">CASTELLANO</a>
<a href="index.php?idioma=2">INGLÉS</a>
<a href="index.php?idioma=3">FRANCÉS</a>
Con respecto a los textos, yo no utilizaría bases de datos ni nada por
el estilo, aunque para gustos, colores. Para probar, yo me crearía
otro fichero, que incluiremos en el código con un include, en donde
definiriamos los tres textos apoyándonos en una matriz, que en PHP nos
da la libertad de que los índices pueden ser números o cadenas, que
te puede ser muy útil para poder distribuirlas sin tener que tener una
chuleta que relacione campos con textos.
$texto['campo1',1]="Ej. Castellano 1";
$texto['campo1',2]="Ej. Inglés 1";
$texto['campo1',3]="Ej. Francés 1";
$texto['campo2',1]="Ej. Castellano 2";
$texto['campo2',2]="Ej. Inglés 2";
$texto['campo2',3]="Ej. Francés 2";
y así sucesivamente.
Lo guardamos como TEXTOS.INC.
Antes de dar salida al HTML, interviene PHP, en donde vas a decidir lo
del idioma.
session_start();
include "textos.inc";
// Verificamos si la variable idioma está inicializada.
// Si no existe, quiere decir que es la primera vez que
// ha arrancado la web o que se ha destruido la sesión
// por lo que le asignamos el valor del idioma por defecto, 1
if (!isset($_SESSION['idioma'])){
$_SESSION['idioma']=1;
} else {
// Si la variable ya existía,vamos a comprobar si se ha pinchado el
enlace
// de otro idioma para cambiarlo, por lo que si se ha pinchado en uno
de ellos
// existirá en la barra de direcciones una variable idioma=X
// CUIDADO. esto es una prueba y vale, pero esto se debe pulir para
asegurarse
// que los valores son 1, 2 ó 3. Un usuario podría manipular el valor
en la barra de direciones
// y poner un 18 y volverse "pirulo" el programa.
if (isset($_GET['idioma']) {
$idioma=$_GET['idioma'];
$_SESSION['idioma']=$idioma;
}
}
A partir de aquí, lanzas el HTML con las variables PHP embebidas en
él y cuando quieras poner un texto le dices cual y el idioma estará
seleccionado por defecto, utilizando la matriz así:
$texto['campo1',$idioma] donde corresponda en el HTML.
Hay más formas de hacerlo, pero aunque sea un poco bruto es eficaz y
con el tiempo se puede mejorar. Yo por ejemplo, me creo ficheros de
texto con lo que quiero y lo asigno a matrices con bucles FOR, que
queda más fino y menos trabajoso que estar asignando uno por uno los
textos.
Si no es lo que preguntabas, siento haberte metido este rollo, pero es
lo que he interpretado de tus palabras.
Un saludo