Foros del Web

Foros del Web (http://www.forosdelweb.com/)
-   PHP (http://www.forosdelweb.com/f18/)
-   -   Que manera es la mas adecuada para hacer una web multilenguaje?? (http://www.forosdelweb.com/f18/que-manera-mas-adecuada-para-hacer-web-multilenguaje-764188/)

iovan 23/12/2009 14:16

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.

rodrigo_00 23/12/2009 15:03

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

El-FeNiX 23/12/2009 19:43

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.

chalchis 24/12/2009 01:06

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

destor77 24/12/2009 08:29

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. }

Nano_ 24/12/2009 08:58

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.:si:


Saludos

Nano

acoevil 24/12/2009 09:58

Respuesta: Que manera es la mas adecuada para hacer una web multilenguaje??
 
Mira este ejemplo

http://www.ribosomatic.com/articulos...iomas-con-php/

chalchis 24/12/2009 11:23

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

neodani 24/12/2009 16:58

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

Iniciado por destor77 (Mensaje 3216967)
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!

El-FeNiX 24/12/2009 20:24

Respuesta: Que manera es la mas adecuada para hacer una web multilenguaje??
 
Con arrays lo veo mas confuso.

jonatanc 24/12/2009 20:40

Respuesta: Que manera es la mas adecuada para hacer una web multilenguaje??
 
No se definen variables , se definen constantes que son peores en rendimiento.

neodani 25/12/2009 02:35

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

Iniciado por jonatanc (Mensaje 3217352)
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!

jonatanc 25/12/2009 08:00

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

acoevil 25/12/2009 09:48

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

destor77 25/12/2009 12:45

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

Iniciado por jonatanc (Mensaje 3217478)
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?

jonatanc 25/12/2009 14:41

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

Iniciado por destor77 (Mensaje 3217627)
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.


La zona horaria es GMT -6. Ahora son las 02:14.

Desarrollado por vBulletin® Versión 3.8.7
Derechos de Autor ©2000 - 2014, Jelsoft Enterprises Ltd.

SEO by vBSEO 3.3.2