Discussion:
menu dinámico mysql
(demasiado antiguo para responder)
Neo Moreno
2006-11-20 17:54:28 UTC
Permalink
Hola, soy nuevo en php, y me preguntaba si existe alguna forma de hacer
una web de inicio en varios idiomas (enlazados a una b.d. mysql)??? De
forma que depende de lo que se elija, saldrá el idioma en ingles,
frances, italiano o español.

gracias a todos por adelantado
Pedro Maicas
2006-11-20 19:15:22 UTC
Permalink
Post by Neo Moreno
Hola, soy nuevo en php, y me preguntaba si existe alguna forma de hacer
una web de inicio en varios idiomas (enlazados a una b.d. mysql)??? De
forma que depende de lo que se elija, saldrá el idioma en ingles,
frances, italiano o español.
Si te hacen esa pregunta en el 1 2 3, te forras.

Por 25 pts la respuesta, digame formas o modos
de que una web presente una página de inicio y segun
el idioma elegido el resto de la visita se haga en
el idioma seleccionado.

Por ejemplo, almacenando el idioma elegido en una
cookie. 1 2 3 responda otra vez:

- Almacenando el idioma en una cookie
- pasando el idioma con un parámetro en cada get
- guardando la direccion ip del cliente en el servidor
- por el idioma de la pagina visitada anteriormente
- Almacenando el idioma en una cokie

meeeeeeeeeecccccccccc

Por todos los indios cherokies, ha repetido cokie !


Saludos :-) -Pedro-

http://www.maicas.net/

e-mail en www.maicas.net
Neo Moreno
2006-11-21 10:41:39 UTC
Permalink
Post by Pedro Maicas
Post by Neo Moreno
Hola, soy nuevo en php, y me preguntaba si existe alguna forma de hacer
una web de inicio en varios idiomas (enlazados a una b.d. mysql)??? De
forma que depende de lo que se elija, saldrá el idioma en ingles,
frances, italiano o español.
Si te hacen esa pregunta en el 1 2 3, te forras.
Por 25 pts la respuesta, digame formas o modos
de que una web presente una página de inicio y segun
el idioma elegido el resto de la visita se haga en
el idioma seleccionado.
Por ejemplo, almacenando el idioma elegido en una
- Almacenando el idioma en una cookie
- pasando el idioma con un parámetro en cada get
- guardando la direccion ip del cliente en el servidor
- por el idioma de la pagina visitada anteriormente
- Almacenando el idioma en una cokie
meeeeeeeeeecccccccccc
Por todos los indios cherokies, ha repetido cokie !
Saludos :-) -Pedro-
http://www.maicas.net/
e-mail en www.maicas.net
Lo que yo quiero no es eso. Es hacer una base de datos dinamica para
que cada vez que agregue un campo en el menu, me salga automáticamente.

ej:

1 - castellano - campo1:inicio;campo2:empresa;campo3:salir;
2 - ingles - campo1:home;campo2:enterprise;campo3:exit;

o sea, que cada idioma es uan tabla con sus campos. y si pongo un
campo4 que salga automáticamente en la web.
Javier Pérez
2006-11-26 13:19:27 UTC
Permalink
Post by Neo Moreno
Lo que yo quiero no es eso. Es hacer una base de datos dinamica para
que cada vez que agregue un campo en el menu, me salga automáticamente.
¿Qué es una "base de datos dinámica"?
Post by Neo Moreno
1 - castellano - campo1:inicio;campo2:empresa;campo3:salir;
2 - ingles - campo1:home;campo2:enterprise;campo3:exit;
o sea, que cada idioma es uan tabla con sus campos. y si pongo un
campo4 que salga automáticamente en la web.
"Cada idioma es una tabla" es un error de tres pares de cojones...

Te pongo un sencillo pseudocódigo de 1º:

FUNCION traduce($texto)
$sql = "
SELECT traduccion
FROM traducciones
WHERE texto=$texto
AND idioma=$COOKIE['idioma']
AND traduccion IS NOT NULL
"
QUERY($sql)
SI SqlNumRows() > 0 ENTONCES
$traduccion = SqlFetchOne()
RETORNAR $traduccion
SINO
$sql = "
INSERT INTO traducciones
(texto, traduccion, idioma)
VALUES ($texto,NULL,$COOKIE['idioma'])
"
QUERY($sql)
RETORNAR $texto
FIN SI
FIN FUNCION

<html>
<body>
<div><?=traduce('Bienvenidos a mi bitácora')?></div>
</body>
</html>

El administrador de traducciones, y una más que necesaria caché, lo dejo a
tu imaginación...

También quedaría por implementar traducciones de singulares y plurales. Por
ejemplo:

<p><?=sprintf(traduce("Hay %d usuarios conectados"), $x)?></p>

Si $x = 1, la cadena quedaría "Hay 1 usuarios conectados", y no queda
bien...

Lo mismo en el caso $x = 0:
- Hay 0 usuarios conectados
- Hay 0 usuario conectado

Pero eso depende de cuan profesional pretendas hacer tu aplicación, o por el
contrario es simplemente un ejercicio de clase o una web que te ha
encargado un amiguete...
--
Saludos,
Javier Pérez
http://javierperez.eu
ziberage
2006-11-21 15:01:06 UTC
Permalink
Post by Neo Moreno
Hola, soy nuevo en php, y me preguntaba si existe alguna forma de hacer
una web de inicio en varios idiomas (enlazados a una b.d. mysql)??? De
forma que depende de lo que se elija, saldrá el idioma en ingles,
frances, italiano o español.
gracias a todos por adelantado
Hola Neo:

Yo he hecho algo parecido, simplemente teniendo definido los textos en
diferentes idiomas y los cargo en un array cuando se inicia la sesión,
asignando el idioma mediante una variable, por ejemplo $idioma, y
cuando accede el cliente, por defecto pone un idioma X y si se cambia,
carga en el array la lista de textos del idioma en cuestión y poniendo
la variable $idioma en 1, 2, 3, etc dependiendo de que idioma se
quiera utilizar.

Mientras no se destruya la sesión, mantendrá dicho idioma, porque
mantendrá el valor de la variable $idioma.

Espero que te sirva de algo.

Salu2
Neo Moreno
2006-11-21 15:09:29 UTC
Permalink
Post by ziberage
Post by Neo Moreno
Hola, soy nuevo en php, y me preguntaba si existe alguna forma de hacer
una web de inicio en varios idiomas (enlazados a una b.d. mysql)??? De
forma que depende de lo que se elija, saldrá el idioma en ingles,
frances, italiano o español.
gracias a todos por adelantado
Yo he hecho algo parecido, simplemente teniendo definido los textos en
diferentes idiomas y los cargo en un array cuando se inicia la sesión,
asignando el idioma mediante una variable, por ejemplo $idioma, y
cuando accede el cliente, por defecto pone un idioma X y si se cambia,
carga en el array la lista de textos del idioma en cuestión y poniendo
la variable $idioma en 1, 2, 3, etc dependiendo de que idioma se
quiera utilizar.
Mientras no se destruya la sesión, mantendrá dicho idioma, porque
mantendrá el valor de la variable $idioma.
Espero que te sirva de algo.
Salu2
pero no se como hacerlo. La cosa está que no se donde decirle que me
elija el idioma. Y como hago para abrir la tabla que toca?????
ziberage
2006-11-23 07:30:05 UTC
Permalink
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
ziberage
2006-11-23 07:32:27 UTC
Permalink
perdona la errata, pero te he metido las matrices como $texto[x,y] y lo
correcto es $texto[x][y].

Lo siento, pero se me ha ido la olla.

Saludos
Javier Pérez
2006-11-26 13:26:06 UTC
Permalink
Post by Neo Moreno
pero no se como hacerlo. La cosa está que no se donde decirle que me
elija el idioma. Y como hago para abrir la tabla que toca?????
Haber empezado por ahí hombre... :-P

Selección de idioma:

--- HTML ---
<ul>
<li>
<a href="seleccionaIdioma.php?idioma=es">
<?=traduce('Español')?>
</a>
</li>
<li>
<a href="seleccionaIdioma.php?idioma=en">
<?=traduce('Inglés')?>
</a>
</li>
</ul>
--- FIN HTML ---

--- seleccionaIdioma.php ---
setcookie($_GET['idioma']);
$_COOKIE['idioma'] = $_GET['idioma'];
header('Location: '.$_SERVER['HTTP_REFERER']);
exit();
--- FIN PHP ---

Sobre cómo abrir la tabla que toca... ya te dije que tener una tabla para
cada idioma es una tremenda chapuza. Sólo una tabla, con un campo que
indique el idioma. un campo con el texto-id (lo que pones en la
función "traduce"), y un campo con la traducción al idioma que indica el
primer campo.
--
Saludos,
Javier Pérez
http://javierperez.eu
Neo Moreno
2006-11-27 11:23:47 UTC
Permalink
Post by Javier Pérez
Post by Neo Moreno
pero no se como hacerlo. La cosa está que no se donde decirle que me
elija el idioma. Y como hago para abrir la tabla que toca?????
Haber empezado por ahí hombre... :-P
--- HTML ---
<ul>
<li>
<a href="seleccionaIdioma.php?idioma=es">
<?=traduce('Español')?>
</a>
</li>
<li>
<a href="seleccionaIdioma.php?idioma=en">
<?=traduce('Inglés')?>
</a>
</li>
</ul>
--- FIN HTML ---
--- seleccionaIdioma.php ---
setcookie($_GET['idioma']);
$_COOKIE['idioma'] = $_GET['idioma'];
header('Location: '.$_SERVER['HTTP_REFERER']);
exit();
--- FIN PHP ---
Sobre cómo abrir la tabla que toca... ya te dije que tener una tabla para
cada idioma es una tremenda chapuza. Sólo una tabla, con un campo que
indique el idioma. un campo con el texto-id (lo que pones en la
función "traduce"), y un campo con la traducción al idioma que indica el
primer campo.
pero cuando, abro la página con los campos nombre, apellidos, etcc...
Como le digo que me imprima en las etiquetas, el idioma?????
si tengo una tabla, será:
tabla esp: texto1-nombre
text02-apellidos
tabla ing: text1-nombre
text2-apellidos

como lo puedo hacer sin tablas (bd)?????? Con un fichero de texto
plano???????
Javier Pérez
2006-11-27 12:52:17 UTC
Permalink
Post by Neo Moreno
pero cuando, abro la página con los campos nombre, apellidos, etcc...
Como le digo que me imprima en las etiquetas, el idioma?????
tabla esp: texto1-nombre
text02-apellidos
tabla ing: text1-nombre
text2-apellidos
como lo puedo hacer sin tablas (bd)?????? Con un fichero de texto
plano???????
Sin tablas no, CON UNA SOLA TABLA.

::: SQL :::
CREATE TABLE translations
text_id VARCHAR(255)
lang_id CHAR(2)
translated TEXT

::: funcion para traducir :::
function __($text) {
$lang_id = $_COOKIE['lang'];

// Buscamos la traducción del texto
$sql = "
SELECT translated
FROM translations
WHERE text_id='$text'
AND lang_id = '$lang_id'
AND translated IS NOT NULL
";
mysql_query($sql);
if (mysql_num_rows() > 0) {
// Si existe la traducción, la devolvemos
return array_shift(mysql_fetch_row());
}

// Comprobamos si existe ya un registro con el text_id
$sql = "
SELECT COUNT(*)
FROM translations
WHERE text_id='$text'
AND lang_ig='$lang_id'
";
mysql_query($sql);
$count = array_shift(mysql_fetch_row());
if (intval($count) == 0) {
// Si no existe, se inserta
$sql = "INSERT INTO translations VALUES ('$text','$lang_id',NULL)";
// Con esta inserción, dejamos un registro con la traducción NULL,
// para que podamos buscar las cadenas que aún no han sido
// traducidas.
mysql_query($sql);
}

// Devolvemos el texto sin traducir
return $text;
}

::: prueba de la funcion :::
setcookie('lang', 'es');
$_COOKIE['lang'] = 'es';

<h1><?=__("Hello world!")?></h1>

Con esto, tras su ejecución, se creará un registro en la tabla translations:
"Hello World!", "es", NULL

Sustituye el campo del valor NULL (campo translated) con la
traducción: "¡Hola Mundo!".

Cuando vuelvas a ejecutarlo, te saldrá "¡Hola Mundo!"

Si con esto no te aclaras...
--
Saludos,
Javier Pérez

Blog:
- http://javierperez.eu

RainFox (extensión para Firefox):
- http://javierperez.eu/rainfox-llueve-sobre-firefox/
- http://javierperez.eu/projects/home/rainfox/
- https://addons.mozilla.org/firefox/3252/
Neo Moreno
2006-11-27 15:31:57 UTC
Permalink
Post by Javier Pérez
Post by Neo Moreno
pero cuando, abro la página con los campos nombre, apellidos, etcc...
Como le digo que me imprima en las etiquetas, el idioma?????
tabla esp: texto1-nombre
text02-apellidos
tabla ing: text1-nombre
text2-apellidos
como lo puedo hacer sin tablas (bd)?????? Con un fichero de texto
plano???????
Sin tablas no, CON UNA SOLA TABLA.
CREATE TABLE translations
text_id VARCHAR(255)
lang_id CHAR(2)
translated TEXT
function __($text) {
$lang_id = $_COOKIE['lang'];
// Buscamos la traducción del texto
$sql = "
SELECT translated
FROM translations
WHERE text_id='$text'
AND lang_id = '$lang_id'
AND translated IS NOT NULL
";
mysql_query($sql);
if (mysql_num_rows() > 0) {
// Si existe la traducción, la devolvemos
return array_shift(mysql_fetch_row());
}
// Comprobamos si existe ya un registro con el text_id
$sql = "
SELECT COUNT(*)
FROM translations
WHERE text_id='$text'
AND lang_ig='$lang_id'
";
mysql_query($sql);
$count = array_shift(mysql_fetch_row());
if (intval($count) == 0) {
// Si no existe, se inserta
$sql = "INSERT INTO translations VALUES
('$text','$lang_id',NULL)"; // Con esta inserción, dejamos un
registro con la traducción NULL, // para que podamos
buscar las cadenas que aún no han sido // traducidas.
mysql_query($sql);
}
// Devolvemos el texto sin traducir
return $text;
}
setcookie('lang', 'es');
$_COOKIE['lang'] = 'es';
<h1><?=__("Hello world!")?></h1>
"Hello World!", "es", NULL
Sustituye el campo del valor NULL (campo translated) con la
traducción: "¡Hola Mundo!".
Cuando vuelvas a ejecutarlo, te saldrá "¡Hola Mundo!"
Si con esto no te aclaras...
ahora te entiendo. pero lo que quiero es que me traduzca todos los
menús
Javier Pérez
2006-11-27 16:28:04 UTC
Permalink
Post by Neo Moreno
ahora te entiendo. pero lo que quiero es que me traduzca todos los
menús
Y yo quiero una tortilla de patatas. Así que voy a ir a la casa del vecino a
decirle que me haga una :)
--
Saludos,
Javier Pérez

Blog:
- http://javierperez.eu

RainFox (extensión para Firefox):
- http://javierperez.eu/rainfox-llueve-sobre-firefox/
- http://javierperez.eu/projects/home/rainfox/
- https://addons.mozilla.org/firefox/3252/
Pedro Maicas
2006-11-27 18:41:35 UTC
Permalink
Post by Javier Pérez
Y yo quiero una tortilla de patatas. Así que voy a ir a la casa del vecino a
decirle que me haga una :)
No lo entiendo, ¿ las tortillas de patata se hacen con patata ?




Saludos :-) -Pedro-

http://www.maicas.net/

e-mail en www.maicas.net
Javier Pérez
2006-11-28 19:41:18 UTC
Permalink
Post by Pedro Maicas
Post by Javier Pérez
Y yo quiero una tortilla de patatas. Así que voy a ir a la casa del vecino
a decirle que me haga una :)
No lo entiendo, ¿ las tortillas de patata se hacen con patata ?
No te agobies... vamos a preguntárselo a mi amigo el informático! :D
--
Saludos,
Javier Pérez

Blog:
- http://javierperez.eu

RainFox (extensión para Firefox):
- http://javierperez.eu/rainfox-llueve-sobre-firefox/
- http://javierperez.eu/projects/home/rainfox/
- https://addons.mozilla.org/firefox/3252/
Pedro Maicas
2006-11-27 18:46:25 UTC
Permalink
Post by Javier Pérez
Y yo quiero una tortilla de patatas. Así que voy a ir a la casa del vecino a
decirle que me haga una :)
me cuerdo de que hace años, en uno de los primeros
programas de tv de "cámara oculta" (sería el 1º ?)
gastaron una broma que consistía en que un tipo iba
al futbol y se ponía al lado de otro y empezaba a
preguntar
¿ porque van todos corriendo detras de la pelota ?
y ¿ porque la pelota es redonda ?
y ¿ porque hay uno que va de negro ?
y así sin parar.


A veces me acuerdo de aquella broma, a pesar
de que hace mucho mucho tiempo ¿ porqué será ?

:-)


Saludos :-) -Pedro-

http://www.maicas.net/

e-mail en www.maicas.net
Javier Pérez
2006-11-28 19:40:29 UTC
Permalink
Post by Pedro Maicas
A veces me acuerdo de aquella broma, a pesar
de que hace mucho mucho tiempo ¿ porqué será ?
Es una broma de muy mal gusto... doy fé... O:-)
--
Saludos,
Javier Pérez

Blog:
- http://javierperez.eu

RainFox (extensión para Firefox):
- http://javierperez.eu/rainfox-llueve-sobre-firefox/
- http://javierperez.eu/projects/home/rainfox/
- https://addons.mozilla.org/firefox/3252/
Neo Moreno
2006-11-28 09:50:51 UTC
Permalink
Post by Javier Pérez
Post by Neo Moreno
ahora te entiendo. pero lo que quiero es que me traduzca todos los
menús
Y yo quiero una tortilla de patatas. Así que voy a ir a la casa del vecino a
decirle que me haga una :)
a ver, a parte de tu singracia. Si tengo una bdatos con una tabla para
cada idioma, con los campos del menu. No puedo hacer que elija la tabla
según el idioma elegido en la página inicial??????
Alex Estevez
2006-11-28 10:05:06 UTC
Permalink
Post by Neo Moreno
a ver, a parte de tu singracia. Si tengo una bdatos con una tabla para
cada idioma, con los campos del menu. No puedo hacer que elija la tabla
según el idioma elegido en la página inicial??????
Si puedes, hazlo

Saludos
--
Alex Estevez
Neo Moreno
2006-11-28 10:16:01 UTC
Permalink
Post by Alex Estevez
a ver, a parte de tu singracia. Si tengo una bdatos con una tabla para cada
idioma, con los campos del menu. No puedo hacer que elija la tabla según el
idioma elegido en la página inicial??????
Si puedes, hazlo
Saludos
el problema es que no se como hacerlo.
Alex Estevez
2006-11-28 10:21:33 UTC
Permalink
Post by Neo Moreno
el problema es que no se como hacerlo.
Pues si no puedes hacerlo, no lo hagas.

Te han puesto el codigo.... te han dado la sarten, las patatas, los
huevos, el aceite y la sal, te han calentado el aceite en la sarten, te
han roto los huevos y los han batido, les han puesto el punto de sal.

Te han pelado las patas y han empezado a freirlas. Solo te falta poner
tu el huevo batido en la sarten...

O lo hechas o no lo hechas, tu mismo, pero permiteles que despues del
esfuerzo que se han tomado contigo puedan disfrutar del humor que
produce la escena.

Saludos
--
Alex Estevez
Oscar Garcia
2006-11-28 10:59:40 UTC
Permalink
Post by Neo Moreno
Post by Alex Estevez
a ver, a parte de tu singracia. Si tengo una bdatos con una tabla para cada
idioma, con los campos del menu. No puedo hacer que elija la tabla según el
idioma elegido en la página inicial??????
Si puedes, hazlo
el problema es que no se como hacerlo.
Te hemos ayudado todos. Yo incluso te he puesto ejemplos prácticos de
cómo hacerlo usando únicamente una tabla (yo lo prefiero así).

Si no sabes programar, quizá no serías la persona indicada para hacer
la aplicación que estás haciendo.

Aún así seré benévolo y te diré el secreto mejor guardado de los
programadores: el arte de saber programar.

$sql = 'SELECT ... FROM '. $tabla .' WHERE ...';

O también:

$sql = "SELECT ... FROM $tabla WHERE ...";

Espero que no necesite decirte que $tabla almacena la tabla que
quieras usar para la consulta.

Espero que tampoco tenga que detallarte que dicha variable debería
inicializarse con el idioma que quieras leer.

Espero que tampoco tenga que decirte que en vez de llamarse $tabla la
variable puede llamarse $idioma, o $_SESSION['idioma'], etc..

Espero no tener que explicarte que dentro de las comillas dobles las
variables deben delimitarse con {} para evitar confusiones o
ambiguedades: {$_SESSION['idioma']} o ${_SESSION['idioma']}.

¿Tienes más dudas? Te recomiendo un buen libro de metodología de la
programación y consultar el manua de PHP (¡gratis!) en:
http://es.php.net/
Post by Neo Moreno
ahora te entiendo. pero lo que quiero es que me traduzca todos los
menús
[...]

Un saludo.
P.D.: Espero no haber subido el tono de mi mensaje más de lo que
intento contenerlo.
--
Óscar Javier García Baudet
LinaresDigital
http://redstar.linaresdigital.com/
Morpheus123102
2006-11-28 11:11:22 UTC
Permalink
Post by Oscar Garcia
Post by Neo Moreno
Post by Alex Estevez
Post by Neo Moreno
a ver, a parte de tu singracia. Si tengo una bdatos con una tabla para
cada idioma, con los campos del menu. No puedo hacer que elija la tabla
según el idioma elegido en la página inicial??????
Si puedes, hazlo
el problema es que no se como hacerlo.
Te hemos ayudado todos. Yo incluso te he puesto ejemplos prácticos de
cómo hacerlo usando únicamente una tabla (yo lo prefiero así).
Si no sabes programar, quizá no serías la persona indicada para hacer
la aplicación que estás haciendo.
Aún así seré benévolo y te diré el secreto mejor guardado de los
programadores: el arte de saber programar.
$sql = 'SELECT ... FROM '. $tabla .' WHERE ...';
$sql = "SELECT ... FROM $tabla WHERE ...";
Espero que no necesite decirte que $tabla almacena la tabla que
quieras usar para la consulta.
Espero que tampoco tenga que detallarte que dicha variable debería
inicializarse con el idioma que quieras leer.
Espero que tampoco tenga que decirte que en vez de llamarse $tabla la
variable puede llamarse $idioma, o $_SESSION['idioma'], etc..
Espero no tener que explicarte que dentro de las comillas dobles las
variables deben delimitarse con {} para evitar confusiones o
ambiguedades: {$_SESSION['idioma']} o ${_SESSION['idioma']}.
¿Tienes más dudas? Te recomiendo un buen libro de metodología de la
http://es.php.net/
Post by Neo Moreno
ahora te entiendo. pero lo que quiero es que me traduzca todos los
menús
[...]
Un saludo.
P.D.: Espero no haber subido el tono de mi mensaje más de lo que
intento contenerlo.
VALE, PERO COMO PONGO EN UNA SOLA TABLA TODO EL MENU DE LA WEB EN
DIFERENTES IDIOMAS??????? NECESITARÉ VARIAS TABLA!!!!
Oscar Garcia
2006-11-28 11:32:17 UTC
Permalink
Post by Morpheus123102
VALE, PERO COMO PONGO EN UNA SOLA TABLA TODO EL MENU DE LA WEB EN
DIFERENTES IDIOMAS??????? NECESITARÉ VARIAS TABLA!!!!
Ahora mismo no sé si estás de cachondeo o no...

¿Te has parado a leer todo lo que te hemos estado poniendo?

Solución con una tabla:
(tabla única) id - lenguaje - mensaje - traduccion

Solución con una tabla por idioma:
(por cada tabla de lenguaje) id - mensaje - traduccion

¿Qué parte no entiendes?

Quizá no entiendas que necesitas UN REGISTRO por cada mensaje y cada
idioma. Mira el mensaje que te envié para ver un ejemplo del contenido
de una tabla.

Yo, además, te propuse un sistema de "búsqueda" sencilla de palabras
por página web, de modo que todo te quede mejor organizado. Además te
propuse un método para cargar las traducciones en un array para luego
simplificar la salida del texto traducido.

¿Qué más quieres? ¿Puedes ser más específico con tu duda o enviarnos
un código de ejemplo en el que no entiendas cómo funciona o echarlo a
andar?

Un saludo.
--
Óscar Javier García Baudet
LinaresDigital
http://redstar.linaresdigital.com/
Morpheus123102
2006-11-28 11:41:40 UTC
Permalink
Post by Oscar Garcia
Post by Morpheus123102
VALE, PERO COMO PONGO EN UNA SOLA TABLA TODO EL MENU DE LA WEB EN
DIFERENTES IDIOMAS??????? NECESITARÉ VARIAS TABLA!!!!
Ahora mismo no sé si estás de cachondeo o no...
¿Te has parado a leer todo lo que te hemos estado poniendo?
(tabla única) id - lenguaje - mensaje - traduccion
(por cada tabla de lenguaje) id - mensaje - traduccion
¿Qué parte no entiendes?
Quizá no entiendas que necesitas UN REGISTRO por cada mensaje y cada
idioma. Mira el mensaje que te envié para ver un ejemplo del contenido
de una tabla.
Yo, además, te propuse un sistema de "búsqueda" sencilla de palabras
por página web, de modo que todo te quede mejor organizado. Además te
propuse un método para cargar las traducciones en un array para luego
simplificar la salida del texto traducido.
¿Qué más quieres? ¿Puedes ser más específico con tu duda o enviarnos
un código de ejemplo en el que no entiendas cómo funciona o echarlo a
andar?
Un saludo.
ostia, que lapsus. ahora te entiendo. perdona. pero no me cachondeaba.
Palabra que no entendía lo que me explicabas. De todo corazón, gracias.
countach
2006-11-28 11:10:24 UTC
Permalink
Post by Neo Moreno
Post by Alex Estevez
Post by Neo Moreno
a ver, a parte de tu singracia. Si tengo una bdatos con una tabla
para cada idioma, con los campos del menu. No puedo hacer que elija
la tabla según el idioma elegido en la página inicial??????
Si puedes, hazlo
Saludos
el problema es que no se como hacerlo.
Pues nada, ¡a aprender!

Empieza desde más abajo, quizá, hola mundo y eso, no seamos tan osados al
principio.
Javier Pérez
2006-11-28 19:46:00 UTC
Permalink
Post by Neo Moreno
Post by Javier Pérez
Y yo quiero una tortilla de patatas. Así que voy a ir a la casa del
vecino a decirle que me haga una :)
a ver, a parte de tu singracia. Si tengo una bdatos con una tabla para
cada idioma, con los campos del menu. No puedo hacer que elija la tabla
según el idioma elegido en la página inicial??????
¿"Singracia"? Te aseguro que a mí me ha parecido más gracioso de lo que
crees.

Una de dos, o me estás vacilando, o no tienes ni idea de programación.

Para lo primero, te felicito, he picado. Y para lo segundo, este no es un
grupo para enseñar a programar, sino para resolver dudas a PROGRAMADORES
sobre PHP. Sencillamente, no te podemos ayudar si no sabes programar. Y
tendrías que haber dicho, por consideración, que no sabías programar antes
de preguntar nada.

Si quieres aprender a programar tienes a la universidad... :-m retiro lo
dicho... tienes a Internet a tu entera y gratuita disposición.
--
Saludos,
Javier Pérez

Blog:
- http://javierperez.eu

RainFox (extensión para Firefox):
- http://javierperez.eu/rainfox-llueve-sobre-firefox/
- http://javierperez.eu/projects/home/rainfox/
- https://addons.mozilla.org/firefox/3252/
Morpheus123102
2006-11-29 14:23:41 UTC
Permalink
Post by Javier Pérez
Post by Neo Moreno
Post by Javier Pérez
Y yo quiero una tortilla de patatas. Así que voy a ir a la casa del
vecino a decirle que me haga una :)
a ver, a parte de tu singracia. Si tengo una bdatos con una tabla para
cada idioma, con los campos del menu. No puedo hacer que elija la tabla
según el idioma elegido en la página inicial??????
¿"Singracia"? Te aseguro que a mí me ha parecido más gracioso de lo que
crees.
Una de dos, o me estás vacilando, o no tienes ni idea de programación.
Para lo primero, te felicito, he picado. Y para lo segundo, este no es un
grupo para enseñar a programar, sino para resolver dudas a PROGRAMADORES
sobre PHP. Sencillamente, no te podemos ayudar si no sabes programar. Y
tendrías que haber dicho, por consideración, que no sabías programar antes
de preguntar nada.
Si quieres aprender a programar tienes a la universidad... :-m retiro lo
dicho... tienes a Internet a tu entera y gratuita disposición.
no te enfades, pero si que se programar aunque nunca he tocado php. Lo
mio era Cobol y Clipper, pero como te repito, ha sido un lapsus. Mi
paja mental me decía que en cada tabla solo podía tener un registro
(ja, ja, ja,....)como te he dicho, es una paja mental mia. Y pido
perdón públicamente si te he ofendido. Te juro que no ha sido ninguna
broma.

Y muchas gracias. De corazón.

Oscar Garcia
2006-11-22 22:23:06 UTC
Permalink
Post by Neo Moreno
Hola, soy nuevo en php, y me preguntaba si existe alguna forma de hacer
una web de inicio en varios idiomas (enlazados a una b.d. mysql)??? De
forma que depende de lo que se elija, saldrá el idioma en ingles,
frances, italiano o español.
Sí, existen muchas formas.

Una de ellas podría ser la siguiente:

tabla contenidos:
id - int autoincrement
pagina - char(250) indice
codigo - char(2)
clave - char(100)
texto - text

Así, por ejemplo, podrías tener lo siguietne en la base de datos:
1, inicio, es, saludo, ¡Bientenido a la web de pepito!
2, inicio, en, saludo, Welcome to pepito's homepage!
3, inicio, es, menucontacto, Contacto
4, inicio, en, menucontacto, Contact
5, inicio, es, menuenlaces, Enlaces
6, inicio, en, menuenlaces, Links

Luego sólo tienes que hacer búsquedas por la web:

SELECT * FROM contenidos WHERE pagina='inicio'

Y luego la parseas para introducirla en un array:
while ($linea = mysql_fetch_assoc ($busqueda)) {
$datos[$linea['clave']][$linea['codigo']] = $linea['texto'];
}

Luego sólo resta mostrar en la web lo siguiente:

<p><?= $datos['saludo'][$lang] ?></p>

Donde $lang almacena el código ISO del lenguaje (es, en, fr, it, etc).

Si quieres que en caso de que no exista una palabra en un idioma salga
en el idioma por defecto tendrás que currártelo tú :P
Post by Neo Moreno
gracias a todos por adelantado
De nada.
--
Óscar Javier García Baudet
LinaresDigital
http://redstar.linaresdigital.com/
Loading...