Foros del Web » Programando para Internet » PHP »

Sugerencia para tabla multilenguaje?

Estas en el tema de Sugerencia para tabla multilenguaje? en el foro de PHP en Foros del Web. Hola a todos! Tengo una web la cual esta en 5 idiomas, que esta hecha de la siguiente manera, los datos estáticos están en archivos ...
  #1 (permalink)  
Antiguo 29/12/2011, 11:23
 
Fecha de Ingreso: mayo-2004
Mensajes: 102
Antigüedad: 20 años, 6 meses
Puntos: 5
Sugerencia para tabla multilenguaje?

Hola a todos!
Tengo una web la cual esta en 5 idiomas, que esta hecha de la siguiente manera, los datos estáticos están en archivos es.php, it.php etc..

y la otra parte osea los datos dinámicos están en la base de datos de la siguiente manera:

id | es_name | pt_name | it_name

etc..

Pero me encuentro con un gran problema, a la hora de enviar a traducir los archivos con los define('','') tengo cada vez que enviar los archivos, explicar como funciona todo y cada vez que agrego algo nuevo tengo que enviar de nuevo etc..

Mi consulta entonces es, se puede hacer esto en mysql? pero debo hacer una consulta por cada frase? o hay otra manera

desde ya muchas gracias!
__________________
Bruno Quintana
  #2 (permalink)  
Antiguo 29/12/2011, 11:31
Avatar de pateketrueke
Modernizr
 
Fecha de Ingreso: abril-2008
Ubicación: Mexihco-Tenochtitlan
Mensajes: 26.399
Antigüedad: 16 años, 7 meses
Puntos: 2534
Respuesta: Sugerencia para tabla multilenguaje?

Yo usaría mas bien una tabla por idioma, no una columna.

Digo, es mas sencillo solo cambiar la tabla y seguir haciendo la misma consulta.
__________________
Y U NO RTFM? щ(ºдºщ)

No atiendo por MP nada que no sea personal.
  #3 (permalink)  
Antiguo 29/12/2011, 11:40
Avatar de Patriarka  
Fecha de Ingreso: enero-2011
Ubicación: Moreno, Buenos Aires, Argentina
Mensajes: 2.851
Antigüedad: 13 años, 9 meses
Puntos: 288
Respuesta: Sugerencia para tabla multilenguaje?

si son pocas palabras hace un metodo que las reemplace con str_replace segun el idioma y listo

Código PHP:
Ver original
  1. function replace($palabra_generica,$language="es"){
  2.     $palabras_base=array(...); //todas las palabras generica
  3.     $sp_words=array(...); //
  4.     $en_words=array(...); //
  5.     $it_words=array(...); //
  6.    
  7.     eval('$replacement_words = $'.$language.'_words;');
  8.    
  9.     $translation = str_replace($palabras_base,$replacement_words, $palabra_generica);
  10.     return $translation;
  11.    
  12. }
  #4 (permalink)  
Antiguo 29/12/2011, 13:07
 
Fecha de Ingreso: mayo-2004
Mensajes: 102
Antigüedad: 20 años, 6 meses
Puntos: 5
Respuesta: Sugerencia para tabla multilenguaje?

Hola a todos muchas gracias por vuestras respuestas, a ver yo ahora mismo estoy haciendo de esta manera.

detecta el dominio si termina en .it. entonces le doy el nombre a la variable $elidioma = "it";

despues hago asi,
include($elidioma."_lang".php)

y las consultas las hago asi con cada columna por idioma: $row_blabla[$elidioma."_nombre"]; y así sucesivamente el problema es que eso lo utilizo para los dinamicos pero me gustaria utilizarlo para los datos estaticos(fijos)

Ejemplo ahora esta asi:
<?php echo _calificacion_completa; ?>

y en el file es_lang.php

tengo:

define('_calificacion_completa','Calificación completa');


Pero lo que a mi me gustaria es tener eso en una base datos, pero para ponerlo ahi deberia hacer esto?:

<?PHP
mysql_select_db($database_localhost, $localhost);
$query_total = "SELECT * FROM idiomas WHERE idioma='es'";
$total = mysql_query($query_total, $localhost) or die(mysql_error());
$row_total = mysql_fetch_assoc($total);
$totalRows_total = mysql_num_rows($total); ?>

<?PHP echo $row_total['espanol']; ?>


osea, estaría generando mas de cuatro veces mas de código por cada frase traducida, mi pregunta entonces es por cada frase tengo que hacer una consulta?
O podria hacer una consulta como esa y luego hacer
<?PHP echo $row_total['espanol']; ?>(me mostraria el primer resultado)

<?PHP echo $row_total['espanol']; ?>(me mostraria el segundo resultado)

<?PHP echo $row_total['espanol']; ?>(me mostraria el tercero resultado)

No se es que por como lo veo me parece una forma muy... mmm no se rudimentaria tal vez..

Espero alguna ayudita muchas gracias!
__________________
Bruno Quintana

Etiquetas: mysql, sugerencia, tabla
Atención: Estás leyendo un tema que no tiene actividad desde hace más de 6 MESES, te recomendamos abrir un Nuevo tema en lugar de responder al actual.
Respuesta




La zona horaria es GMT -6. Ahora son las 16:20.