Foros del Web » Programando para Internet » PHP »

Que manera es la mas adecuada para hacer una web multilenguaje??

Estas en el tema de Que manera es la mas adecuada para hacer una web multilenguaje?? en el foro de PHP en Foros del Web. Buenas amigos, vera tengo la duda no estoy seguro cual sea la mejor manera de hacer mi webmutilenguaje. Anteriormente lo habia echo con $_GET['lang'] dandole ...
  #1 (permalink)  
Antiguo 23/12/2009, 15:16
 
Fecha de Ingreso: septiembre-2007
Ubicación: PyRoot
Mensajes: 1.515
Antigüedad: 16 años, 7 meses
Puntos: 188
Que manera es la mas adecuada para hacer una web multilenguaje??

Buenas amigos, vera tengo la duda no estoy seguro cual sea la mejor manera de hacer mi webmutilenguaje.

Anteriormente lo habia echo con $_GET['lang'] dandole un prefijo como es, en, fr, por medio de un get pero no creo que sea lo mejor.


Será mejor usando cookies ??

Gracias.
__________________
Si quieres agradecer el triangulo obscuro de la parte derecha debes presionar +.
  #2 (permalink)  
Antiguo 23/12/2009, 16:03
 
Fecha de Ingreso: noviembre-2007
Ubicación: Lanus, Buenos Aires
Mensajes: 178
Antigüedad: 16 años, 5 meses
Puntos: 14
Respuesta: Que manera es la mas adecuada para hacer una web multilenguaje??

por GET es valido, aunque seria mejor tener algun tipo de "urls amigables" como por ej

misitio.com/es/home
misitio.com/en/home

etc, y obtener el idioma parseando la url
  #3 (permalink)  
Antiguo 23/12/2009, 20:43
 
Fecha de Ingreso: enero-2008
Mensajes: 381
Antigüedad: 16 años, 3 meses
Puntos: 19
Respuesta: Que manera es la mas adecuada para hacer una web multilenguaje??

Yo lo que haria es detectar el idioma por $_SERVER["HTTP_ACCEPT_LANGUAGE"] si en la sesion no esta, y despues poner un menu de seleccion de idioma que no llame demasiado la atencion pero que sea lo sufieciente visible cuando haga falta, y en caso de que el usuario elija otro idioma entonces escribirlo en la cookie.

Saludos.
  #4 (permalink)  
Antiguo 24/12/2009, 02:06
Avatar de chalchis  
Fecha de Ingreso: julio-2003
Mensajes: 1.773
Antigüedad: 20 años, 9 meses
Puntos: 21
Sonrisa Respuesta: Que manera es la mas adecuada para hacer una web multilenguaje??

yo por lo han sugerido algunos gurus es que definas otros directorio y usando hteacces
lo direccionas urls amigables


saludos
__________________
gerardo
  #5 (permalink)  
Antiguo 24/12/2009, 09:29
Avatar de destor77  
Fecha de Ingreso: noviembre-2004
Ubicación: Gálvez, Santa Fe, Argentina
Mensajes: 2.654
Antigüedad: 19 años, 5 meses
Puntos: 43
Respuesta: Que manera es la mas adecuada para hacer una web multilenguaje??

yo lo harías mas fácil, o mejor dicho más organizado, creas un archivo es.php y otro en.php
y dentro de ellos definí constantes que se usen en todo el siitio por ejemplo:
es.php
Código PHP:
Ver original
  1. define(MENU_HOME,'Inicio');
  2. define(MENU_SALIR,'Salir');
  3. define(MENU_TRABAJOS,'Trabajos');
  4. define(MENU_CONTACTO,'Contacto');

Y en el en.php pones
Código PHP:
Ver original
  1. define(MENU_HOME,'Home');
  2. define(MENU_SALIR,'Out');
  3. define(MENU_TRABAJOS,'Portfolio');
  4. define(MENU_CONTACTO,'Contact');

y después ya sea con $_SERVER["HTTP_ACCEPT_LANGUAGE"] u otra manera detectas que lenguaje se esta viendo e incluyes el archivo correspondiente al lenguaje por ejemplo
Código PHP:
Ver original
  1. if($_SERVER["HTTP_ACCEPT_LANGUAGE"]!='es'){
  2.      includes('lang/'.$_SERVER["HTTP_ACCEPT_LANGUAGE"].'.php');
  3. }
  4. else{
  5.      includes('lang/es.php');
  6. }
  #6 (permalink)  
Antiguo 24/12/2009, 09:58
Avatar de Nano_  
Fecha de Ingreso: febrero-2006
Ubicación: Bogotá, Colombia
Mensajes: 1.866
Antigüedad: 18 años, 2 meses
Puntos: 96
Respuesta: Que manera es la mas adecuada para hacer una web multilenguaje??

Buenos Dias!

Yo tambien lo hago de la manera como lo indica destor77, es una forma muy optima y organizada ya que se puede manejar un archivo de lenguaje por cada modulo que tengas en la aplicacion y por cada idioma (es, en, fr......). La unica diferencia es que por cada parrafo que tenga en la aplicacion lo manejo con una funcion getLanguageString:

Ejemplo
getLanguageString('TITULO1');
getLanguageString('TITULO2');
getLanguageString('PARRAFO1');
getLanguageString('PARRAFO2');

Que tiene la funcionalidad detectar el idioma que escogio el usuario, buscar el archivo de lenguage del modulo y traducir la palabra. Esa podria ser otra opcion.


Saludos

Nano
__________________
:.:Nano.:: @nano_hard - Retornando al foro
  #7 (permalink)  
Antiguo 24/12/2009, 10:58
Avatar de acoevil  
Fecha de Ingreso: julio-2008
Ubicación: localhost/colombia/sevillaValle.php
Mensajes: 1.123
Antigüedad: 15 años, 8 meses
Puntos: 32
Respuesta: Que manera es la mas adecuada para hacer una web multilenguaje??

Mira este ejemplo

http://www.ribosomatic.com/articulos...iomas-con-php/
__________________
Como presentar nuestros datos por medio de tablas . clase Aco_DataGrid Version 1.4
  #8 (permalink)  
Antiguo 24/12/2009, 12:23
Avatar de chalchis  
Fecha de Ingreso: julio-2003
Mensajes: 1.773
Antigüedad: 20 años, 9 meses
Puntos: 21
Respuesta: Que manera es la mas adecuada para hacer una web multilenguaje??

bueno yo lo he comentado por el hecho de posicionar la web en los bucadores he aqui
un artículo

http://posicionamientobuscadores.dev...s-multi-idioma

saludos
__________________
gerardo
  #9 (permalink)  
Antiguo 24/12/2009, 17:58
Avatar de neodani  
Fecha de Ingreso: marzo-2007
Mensajes: 1.811
Antigüedad: 17 años, 1 mes
Puntos: 20
Respuesta: Que manera es la mas adecuada para hacer una web multilenguaje??

Cita:
Iniciado por destor77 Ver Mensaje
yo lo harías mas fácil, o mejor dicho más organizado, creas un archivo es.php y otro en.php
y dentro de ellos definí constantes que se usen en todo el siitio por ejemplo:
es.php
Código PHP:
Ver original
  1. define(MENU_HOME,'Inicio');
  2. define(MENU_SALIR,'Salir');
  3. define(MENU_TRABAJOS,'Trabajos');
  4. define(MENU_CONTACTO,'Contacto');

Y en el en.php pones
Código PHP:
Ver original
  1. define(MENU_HOME,'Home');
  2. define(MENU_SALIR,'Out');
  3. define(MENU_TRABAJOS,'Portfolio');
  4. define(MENU_CONTACTO,'Contact');

y después ya sea con $_SERVER["HTTP_ACCEPT_LANGUAGE"] u otra manera detectas que lenguaje se esta viendo e incluyes el archivo correspondiente al lenguaje por ejemplo
Código PHP:
Ver original
  1. if($_SERVER["HTTP_ACCEPT_LANGUAGE"]!='es'){
  2.      includes('lang/'.$_SERVER["HTTP_ACCEPT_LANGUAGE"].'.php');
  3. }
  4. else{
  5.      includes('lang/es.php');
  6. }
Buenas,

Alguien ha probado si es más rápido (y más óptimo) utilizar arrays en lugar de definir las variables tal y como aparece en el post de arriba?

Ej.

Código PHP:
Ver original
  1. /* === CASTELLANO ===*/
  2.     'es' => array(
  3.         'lang' => '',
  4.         'idioma' => 'Castellano',
  5.        
  6.         /* Secciones */
  7.         'contacta' => 'Contacta con nosotros',
  8.         'aviso_legal' => 'Aviso Legal',
  9.         'mapa_web' => 'Mapa Web',
  10.         'info_corporativa' => 'Información Corporativa',
  11.         'atencion_cliente' => 'Atención al cliente',
  12.     ),
  13.    
  14. /* === INGLES ===*/
  15.     'en' => array(
  16.         'lang' => '?lang=en',
  17.         'idioma' => 'Inglés',
  18.        
  19.         /* Secciones */
  20.         'contacta' => 'Contact Us',
  21.         'aviso_legal' => 'Legal Notice',
  22.         'mapa_web' => 'Sitemap',
  23.         'info_corporativa' => 'Corporate Information',
  24.         'atencion_cliente' => 'Client Attention',
  25. ),

Muchas gracias de antemano!
  #10 (permalink)  
Antiguo 24/12/2009, 21:24
 
Fecha de Ingreso: enero-2008
Mensajes: 381
Antigüedad: 16 años, 3 meses
Puntos: 19
Respuesta: Que manera es la mas adecuada para hacer una web multilenguaje??

Con arrays lo veo mas confuso.
  #11 (permalink)  
Antiguo 24/12/2009, 21:40
 
Fecha de Ingreso: enero-2009
Mensajes: 408
Antigüedad: 15 años, 3 meses
Puntos: 14
Respuesta: Que manera es la mas adecuada para hacer una web multilenguaje??

No se definen variables , se definen constantes que son peores en rendimiento.
  #12 (permalink)  
Antiguo 25/12/2009, 03:35
Avatar de neodani  
Fecha de Ingreso: marzo-2007
Mensajes: 1.811
Antigüedad: 17 años, 1 mes
Puntos: 20
Respuesta: Que manera es la mas adecuada para hacer una web multilenguaje??

Cita:
Iniciado por jonatanc Ver Mensaje
No se definen variables , se definen constantes que son peores en rendimiento.
Entonces es más optimo utilizar arrays con todas las palabras y frases traducidas en lugar de constantes?

Me gustaría vuestra opinión para tener claro este punto.

El-FeNiX la llamada es muy sencilla
<?echo $idiomas[$idioma]['frase7'];?>

Salu2!
  #13 (permalink)  
Antiguo 25/12/2009, 09:00
 
Fecha de Ingreso: enero-2009
Mensajes: 408
Antigüedad: 15 años, 3 meses
Puntos: 14
Respuesta: Que manera es la mas adecuada para hacer una web multilenguaje??

Estimado quizas lo más correcto seria trabajar con un modelo de capas en donde en la capa presentación implemente mediante algun libreria la internacionalización de su aplicación para lograr algo de este modo.

<p>t('text0')</p>

y esa función t se encarga de manejar dentro de su arreglo la búsqueda e imprimir , es una forma de encapsular el manejo de idiomas.

Saludos
  #14 (permalink)  
Antiguo 25/12/2009, 10:48
Avatar de acoevil  
Fecha de Ingreso: julio-2008
Ubicación: localhost/colombia/sevillaValle.php
Mensajes: 1.123
Antigüedad: 15 años, 8 meses
Puntos: 32
Respuesta: Que manera es la mas adecuada para hacer una web multilenguaje??

lang.php

Código PHP:
Ver original
  1. $lang['Es']['Inicio'] = 'Inicio';
  2. $lang['En']['Inicio'] = 'Home';

index.php

Código PHP:
Ver original
  1. require_once 'lang.php';
  2. $idioma = $_GET['idioma']; // En
  3. echo $lang[ $idioma ]['Inicio'];  // Home
__________________
Como presentar nuestros datos por medio de tablas . clase Aco_DataGrid Version 1.4
  #15 (permalink)  
Antiguo 25/12/2009, 13:45
Avatar de destor77  
Fecha de Ingreso: noviembre-2004
Ubicación: Gálvez, Santa Fe, Argentina
Mensajes: 2.654
Antigüedad: 19 años, 5 meses
Puntos: 43
Respuesta: Que manera es la mas adecuada para hacer una web multilenguaje??

Cita:
Iniciado por jonatanc Ver Mensaje
Estimado quizas lo más correcto seria trabajar con un modelo de capas en donde en la capa presentación implemente mediante algun libreria la internacionalización de su aplicación para lograr algo de este modo.

<p>t('text0')</p>

y esa función t se encarga de manejar dentro de su arreglo la búsqueda e imprimir , es una forma de encapsular el manejo de idiomas.

Saludos
y como sería esa funcion "t", y como estaría armado el arreglo?
  #16 (permalink)  
Antiguo 25/12/2009, 15:41
 
Fecha de Ingreso: enero-2009
Mensajes: 408
Antigüedad: 15 años, 3 meses
Puntos: 14
Respuesta: Que manera es la mas adecuada para hacer una web multilenguaje??

Cita:
Iniciado por destor77 Ver Mensaje
y como sería esa funcion "t", y como estaría armado el arreglo?
deberia funcionar de un modo simple , la función t se le pasa un identificador de la palabra a buscar e imprimir , la busca en un archivo de idioma y la imprime , como funciona gettext o similares.


Acá dejo un par de links sobre internacionalización:

http://blackshell.usebox.net/archivo/308.php
http://gmt-4.blogspot.com/2008/09/in...hp-usando.html

Saludos.
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 13:37.