Foros del Web » Programando para Internet » PHP »

Traducir texto de mi DB

Estas en el tema de Traducir texto de mi DB en el foro de PHP en Foros del Web. hola a todos Tengo un problema y no se cual es la mejor solucion a el, os explico tengo una base de datos llena de ...
  #1 (permalink)  
Antiguo 22/09/2005, 06:26
 
Fecha de Ingreso: noviembre-2002
Mensajes: 746
Antigüedad: 15 años
Puntos: 6
Traducir texto de mi DB

hola a todos

Tengo un problema y no se cual es la mejor solucion a el, os explico

tengo una base de datos llena de palabras por campo
ejemplo:
azul
negro
rojo
amarill
verde
gris
etc... aprox. 50 mas

y necesito que dependiendo del idioma del web estas palabras se muestren en un idioma u otro, pero no quiero llenar la base de datos con traducciones prefiero crear un archivo en el servido que se encargue de guardar esta traduccion.

Alguien me da una idea de como hacerlo y si es posible un ejemplo..

este sistema de traduccion ya lo tengo hecho pero para las palabras fijas no las que vienen dinamicamente y era por no llenar el archivo de traduccion con 50 if

gracias a todos.

Última edición por suntus; 22/09/2005 a las 06:35
  #2 (permalink)  
Antiguo 22/09/2005, 07:32
O_O
 
Fecha de Ingreso: enero-2002
Ubicación: Santiago - Chile
Mensajes: 34.417
Antigüedad: 15 años, 11 meses
Puntos: 126
Cita:
necesito que dependiendo del idioma del web estas palabras se muestren en un idioma u otro, pero no quiero llenar la base de datos con traducciones prefiero crear un archivo en el servido que se encargue de guardar esta traduccion.
Que significa esto? .. Por qué no quieres usar más campos en tus tablas con la traducción. Has pensado que no es lo mismo "consultar" un archivo de texto plano que una BD..

Por cierto . . el contenido a traducir .. está en tu Base de datos (en alguna tabla/campo) .. ?

Un saludo,
  #3 (permalink)  
Antiguo 22/09/2005, 07:46
 
Fecha de Ingreso: noviembre-2002
Mensajes: 746
Antigüedad: 15 años
Puntos: 6
Cita:
Iniciado por Cluster
Que significa esto? .. Por qué no quieres usar más campos en tus tablas con la traducción. Has pensado que no es lo mismo "consultar" un archivo de texto plano que una BD..

Por cierto . . el contenido a traducir .. está en tu Base de datos (en alguna tabla/campo) .. ?

Un saludo,
Creo que no me explique bien, explicare desde el principio todo

Tengo una web en la que segun el idioma que entres incluye unas variables u otras, estas variables son tipo

//MENU
define('T_LOCALIZACION','Localitation');
define('T_CONOZCANOS','About us');
define('T_NOTICIAS','News');
define('T_BUSCADOR','Search');
define('T_CONTACTO','Contact');

este para ingles logicamente y luego tengo otras para cada idioma esto es para el texto de web que es fijo siempre asi que luego para recuperar el valor uso
<td><h4><?php echo utf8_encode(T_CONOZCANOS) ?></h4></td>
y listo


El problema es que tengo en varios campos un monton de palabras como ya comente.

y me gustaria que cuando llamo a una de ellas pase por algun filtro y me traduzca esa palabra, vamos que podria usar unos "cases" y arreglado

en ASP hay algo para esto y es lo siguente

Dim traduccion
Set traduccion= CreateObject("Scripting.Dictionary")
traduccion.Add "Yes", "Si"
traduccion.Add "Hola","Hello"
...

y luego para el resultado
<%=traduccion.Item(""& rs("saludo") &"")%>

donde saludo es originalmente hola pero el pasar por el item sale hello

Eso en ASP pero espero que haya algo bueno en php para conseguir lo mismo

gracias
  #4 (permalink)  
Antiguo 22/09/2005, 07:59
O_O
 
Fecha de Ingreso: enero-2002
Ubicación: Santiago - Chile
Mensajes: 34.417
Antigüedad: 15 años, 11 meses
Puntos: 126
En PHP podrías usar str_replace() en conjunto con arrays (por si tienes vários idiomas)

http://www.php.net/str_replace
(fijate en los ejemplos que usan arrays)

Pero, te hacía el comentario de donde tienes tu contenido (el que hay que traducir) .. por qué si lo tienes en tu BD .. puedes usar SQL 100% para hacer ese proceso en lugar de un 90% de acceso a tu BD + otro 10% de proceso de PHP para aplicar "str_replace()" o función equivalente.

Un saludo,
  #5 (permalink)  
Antiguo 22/09/2005, 08:40
 
Fecha de Ingreso: noviembre-2002
Mensajes: 746
Antigüedad: 15 años
Puntos: 6
Cita:
Iniciado por Cluster
En PHP podrías usar str_replace() en conjunto con arrays (por si tienes vários idiomas)

http://www.php.net/str_replace
(fijate en los ejemplos que usan arrays)

Pero, te hacía el comentario de donde tienes tu contenido (el que hay que traducir) .. por qué si lo tienes en tu BD .. puedes usar SQL 100% para hacer ese proceso en lugar de un 90% de acceso a tu BD + otro 10% de proceso de PHP para aplicar "str_replace()" o función equivalente.

Un saludo,
pues tengo la palabra en la base de datos pero solo en un idioma osea que tendre que usar una funcion para traducir, creo q los case me gustan mas que str_repace no se q hacer :(
  #6 (permalink)  
Antiguo 22/09/2005, 09:32
O_O
 
Fecha de Ingreso: enero-2002
Ubicación: Santiago - Chile
Mensajes: 34.417
Antigüedad: 15 años, 11 meses
Puntos: 126
El tema del "str_replace()" te lo comentaba para traducir tu contenido (que todavía no me aclaro si lo tienes en Base de datos o en otro médio. Ya sé que tienes tu lista de palabras en una BD)

Deberías probar str_replace() con arrays .. por qué es bien simple para lo que pretendes en lugar de tener una decena de "case" por médio.

Y como te comenté .. estudia la forma de hacerlo vía SQL .. por qué será mucho más óptimo que pasar por PHP .. Mysql o la BD que uses disponen de funciones para tratamiento de "string's" (para re-emplazar .. etc) .. Consulta en el foro de Base de datos. Así no tendrás que andar modificando código "a pelo" cada vez que tengas una palabra nueva.

Un saludo,
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 20:50.