Foros del Web » Programando para Internet » PHP »

Versiones de un sitio en varios idiomas

Estas en el tema de Versiones de un sitio en varios idiomas en el foro de PHP en Foros del Web. Hola, tengo un sitio de shareware y freeware en español, y quiero lanzar la versión en inglés y (luego, si me va bien) en otros ...
  #1 (permalink)  
Antiguo 07/03/2012, 19:57
 
Fecha de Ingreso: diciembre-2007
Ubicación: Rosario
Mensajes: 65
Antigüedad: 16 años, 4 meses
Puntos: 2
Versiones de un sitio en varios idiomas

Hola, tengo un sitio de shareware y freeware en español, y quiero lanzar la versión en inglés y (luego, si me va bien) en otros idiomas.

El sitio está programado en PHP y tiene bastante complejidad en cuanto a la cantidad de archivos (tiene registro de usuarios, etc) y me surge la duda de cómo encarar el proyecto de la versión en inglés.

La opción mas viable que se me ocurre es copiar todo el sitio y traducirlo (ademas vaciar las bases de datos para ir publicando nuevo contenido).

Pero sé que luego me encontraré con que voy a tener que llevar varias versiones del sitio en paralelo (distintos idiomas) y creo que va a ser un poco complicado.

La pregunta es ¿Alguno tiene experiencia en varios sitios similares en distintos idiomas? ¿Saben cómo se organizan los grandes sitios que tienen versiones en distintos idiomas (uptodown, softonic, etc)?

Eso es todo, gracias!
  #2 (permalink)  
Antiguo 07/03/2012, 20:33
Avatar de Patriarka  
Fecha de Ingreso: enero-2011
Ubicación: Moreno, Buenos Aires, Argentina
Mensajes: 2.851
Antigüedad: 13 años, 3 meses
Puntos: 288
Respuesta: Versiones de un sitio en varios idiomas

y vos podria hacer una funcion asi:
Código PHP:
Ver original
  1. <?
  2. function Translate($texto_a_traducir="", $idioma_actual="es"){ //defino los default en los parametros
  3.  
  4. $palabraTraducida = '';
  5.  
  6. $sql = "busco en la db $texto_a_traducir y $idioma_actual  ";
  7. si encuntro la palabra traducida en otro idioma. muestro la palabra traducida,
  8. sino muestro la palabra default en español, (esto quiere decir que no fue traducida)
  9.  
  10. return $palabraTraducida;
  11. }
  12. ?>
ejemplo:

echo Translate("HOLA", "en" ); //deberia devolver "Hello" si esta traducida, sino "Hola" que es default el idioma español, si no es ninguna muestro "HOLA"
//que se entienda que HOLA es texto comun para todos los idiomas, y Hello u Hola, son los posibles resultados.
  #3 (permalink)  
Antiguo 07/03/2012, 22:20
 
Fecha de Ingreso: diciembre-2007
Ubicación: Rosario
Mensajes: 65
Antigüedad: 16 años, 4 meses
Puntos: 2
Respuesta: Versiones de un sitio en varios idiomas

Pero hacer consultas a la base de datos por cada texto a traducir me parece demasiado... me parece que voy a tener que hacer webs clones al final y cuando quiera modificar algo lo modifico varias veces :/
  #4 (permalink)  
Antiguo 07/03/2012, 22:34
Avatar de Patriarka  
Fecha de Ingreso: enero-2011
Ubicación: Moreno, Buenos Aires, Argentina
Mensajes: 2.851
Antigüedad: 13 años, 3 meses
Puntos: 288
Respuesta: Versiones de un sitio en varios idiomas

entonces podes hacer todas las traducciones en el controlador y mandar a la vista solo lo que necesitas

Translate($array_con_palabras_a_traducir, "en");


y en la vista esto {HOLA}
  #5 (permalink)  
Antiguo 08/03/2012, 03:10
Avatar de OsSk4R  
Fecha de Ingreso: octubre-2006
Ubicación: $this->home
Mensajes: 824
Antigüedad: 17 años, 6 meses
Puntos: 74
Respuesta: Versiones de un sitio en varios idiomas

Podrías coger y crear archivos it.php, en.php, etc, y meterlos en una carpeta llamada /lang/ por ejemplo.
Luego, mediante sesiones le das la opción de elegir al usuario que idioma quiere y dependiendo del idioma elegido cargas el it.php o en.php.

Código PHP:
Ver original
  1. La estructura sería por ejemplo para el archivo en.php:
  2. define(CONECTAR, 'Connect');
  3. define(SALIR, 'Leave');
  4. //y asi sucesivamente
  5.  
  6. Para el archivo it.php
  7. define(CONECTAR, 'Collegare');
  8. define(SALIR, 'Scollegare');
  9. //y asi sucesivamente
  10.  
  11. Y para el es.php:
  12. define(CONECTAR, 'Conectar');
  13. define(SALIR, 'Salir');

Este tipo de estructura lo llevan muchas aplicaciones web, muchos script prefabricados sin embargo también hay otra que es similar pero trabajando con archivos tipo .mo y tipo .po. Wordpress usa estos archivos.
Creo que ésta ultima manera (trabajar con .po y .mo) es la mejor opción sin duda aunque personalmente, al menos por ahora, no lo he llegado a utilizar.

Aquí tienes una breve guía al respecto.

Una cosa que te quiero comentar es que esas traducciones traducirían los mensajes de error, el menu por ejemplo, etc. Para el tema del texto de la base de datos sinceramente no se que guardas en la base de datos pero si por ejemplo guardas noticias, deberías de dejarlas en su idioma original como hacen muchos grandes sitios.
Por ejemplo, los grandes sitios te traducen a tu idioma los mensajes, menus... y practicamente todo, excecpto las noticias. Esto es así por que las noticias las publican en su idioma original.
Yo lo que haría sería eso. Tendría distintos idiomas pero en la zona de noticias no.
  #6 (permalink)  
Antiguo 08/03/2012, 06:43
Avatar de Patriarka  
Fecha de Ingreso: enero-2011
Ubicación: Moreno, Buenos Aires, Argentina
Mensajes: 2.851
Antigüedad: 13 años, 3 meses
Puntos: 288
Respuesta: Versiones de un sitio en varios idiomas

lo que dice Ossk4r es cierto, pero cuando costaria MANTENER A MANO ESOS ARCHIVOS,
mas teniendo en cuenta si van a ser mas de 2 idiomas,
tambien es cierto que traducir desde la db consume algo de recursos, pero es lo mas practico y llevadero.
si uno quiere agregar una palabra nueva hay agregarla en cada uno de los archivos, que generalmente son arrays gigantes de palabras, y peor aun encontrar la palabra para modificarla es una locura.

yo me quedo con la db
  #7 (permalink)  
Antiguo 08/03/2012, 08:27
 
Fecha de Ingreso: agosto-2011
Mensajes: 110
Antigüedad: 12 años, 8 meses
Puntos: 13
Respuesta: Versiones de un sitio en varios idiomas

Hola, también podrías emplear un array con los textos y palabras

cuando quieras traducir, tomas el idioma original y vas imprimiendo el texto en dicho idioma desde el array y asociandolo a su indice en el array(si es un array numerico no tendras mas problemas) y junto a él colocas un área de texto.

una vez terminada la traducción tomas el array y creas un archivo con el nuevo lenguaje con el array y los nuevos valores.

combinándolo con la BD podrias almacenar las palabras en la BD en lugar de en un array y cuando el usuario selecciona un idioma, creas dicho array.

un saludo.
  #8 (permalink)  
Antiguo 08/03/2012, 08:33
Avatar de iviamontes  
Fecha de Ingreso: enero-2011
Ubicación: $cubano->Arg->Mendoza
Mensajes: 1.184
Antigüedad: 13 años, 3 meses
Puntos: 209
Respuesta: Versiones de un sitio en varios idiomas

hola, mi respuesta no tiene nada que ver con php, es solo un consejo SEO, que pensé que te vendría bien, el consejo ante sitios de varios idiomas que da google, en su blog, es que hagas subdominios para los idiomas, y dejando en el dominio el idioma preferido, ej

ventas.com (idioma por defecto)
en.ventas.com (sitio en inglés)

así el googlebot no indexa tu sitio incorrectamente y te evitas penalidades del google Panda,
porque el cambio de idiomas con php, solo lo puede hacer el usuario (humano), guardando en cookies, variables de sessión, pero no el googleBot, y entonces te puede indexar páginas con el mismo contenido en varios idiomas, o incluso, penalizarte por contenido duplicado !

si el sitio lo usarás en una intranet, obvia todo esto y usa las variantes que te dan los chicos arriba.
__________________
aconcaguaestudio.com
  #9 (permalink)  
Antiguo 08/03/2012, 10:18
 
Fecha de Ingreso: diciembre-2007
Ubicación: Rosario
Mensajes: 65
Antigüedad: 16 años, 4 meses
Puntos: 2
Respuesta: Versiones de un sitio en varios idiomas

Muchas gracias por sus consejos, ahora tengo más alternativas :)

Los sitios en distintos idiomas serán independientes y cada uno tendrá sus propios contenidos y su dominio propio

Saludos!

Edito: me gustó el link de OsSk4R, no conocía ese método, solamente había utilizado esos ficheros con wordpress pero no sabia bien
como funcionaban
  #10 (permalink)  
Antiguo 08/03/2012, 10:36
 
Fecha de Ingreso: agosto-2011
Mensajes: 110
Antigüedad: 12 años, 8 meses
Puntos: 13
Respuesta: Versiones de un sitio en varios idiomas

Se me ha olvidado aclararte que "mi idea" era para la interfaz de usuario textos de error etc... pero que no era demasiado practica con el contenido. perdón por el error. un saludo.
  #11 (permalink)  
Antiguo 08/03/2012, 11:01
 
Fecha de Ingreso: diciembre-2007
Ubicación: Rosario
Mensajes: 65
Antigüedad: 16 años, 4 meses
Puntos: 2
Respuesta: Versiones de un sitio en varios idiomas

Si, lo entendí, igualmente todas las formas que propusieron pueden adaptarse, ya que el nombre de la base de datos puede considerarse como "una palabra en distintos idiomas" aunque en realidad se llamen por ejemplo baseES, baseEN, etc; lo mismo ocurre con las imágenes (algunas imágenes tienen texto, por ejemplo, algunos botones), lo que haría es llamar a los archivos botonES.png, botonEN.png y hago que la palabra sea "botonES" en español y "botonEN" en inglés.

Etiquetas: idiomas, registro, versiones, usuarios
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 01:18.