Foros del Web » Programación para mayores de 30 ;) » Programación General »

Idioma en mi página

Estas en el tema de Idioma en mi página en el foro de Programación General en Foros del Web. hola monoswim. Bueno tengo una consulta quisiera que mi web sea multiidioma hasta ahroa el idioma esta en base de datos peor eos lo hace ...
  #1 (permalink)  
Antiguo 12/12/2007, 13:06
 
Fecha de Ingreso: diciembre-2007
Mensajes: 10
Antigüedad: 16 años, 5 meses
Puntos: 0
Idioma en mi página

hola monoswim. Bueno tengo una consulta quisiera que mi web sea multiidioma hasta ahroa el idioma esta en base de datos peor eos lo hace muy lento. quisiera hacerlo en archvisos los idiomas peor como designo q tal variable es la palabra del archivo.
  #2 (permalink)  
Antiguo 12/12/2007, 16:36
Avatar de monoswim
$moderador{'Esteban'}
 
Fecha de Ingreso: febrero-2002
Ubicación: Buenos Aires - Argentina
Mensajes: 8.762
Antigüedad: 22 años, 3 meses
Puntos: 90
Re: Idioma en mi página

...mmm...Eso depende de como hagas tu sitio, puedes almacenar una cookie con el idioma que tu usuario haya elegido y dependiendo de la cookie muestras un contenido u otro...

Espero que te sirva

Saludos
PD: Moví este mensaje desde las FAQs, ahí no debes preguntar, crea simepre nuevos temas
__________________
Esteban Quintana
  #3 (permalink)  
Antiguo 12/12/2007, 18:12
Colaborador
 
Fecha de Ingreso: mayo-2006
Ubicación: Valladolid
Mensajes: 524
Antigüedad: 18 años
Puntos: 11
Información Re: Idioma en mi página

Te recomiendo que mires la opción Negociación de Contenidos del Apache.

Es el propio cliente el que solicita un idioma en preferencia a otros. Tu trabajo como webmaster es la de crear versiones de las páginas en diferentes idiomas, y luego, según como se indica en el enlace que te puse, es el propio servidor web el que sirve las páginas según el idioma que solicite el usuario.

Por ejemplo. Si yo tengo un fichero index.html, puedo crear las versiones francesa (index.fr.html), inglesa (index.en.html) y española (index.es.html). Luego, activo el sistema MultiViews en el directorio donde están los ficheros y... listo.

Ahora bien... ¿y si es un alemán el que visita la página? Bueno, podemos hacer un enlace simbólico index.en.html -> index.html.html y de esta manera saldrá la página en inglés, como página por defecto.

Esto es lo sencillo... pero no es tan sencillo...

Resulta que de inglés hay 13 variedades (13 dialectos de inglés), de francés hay 6, y de español hay 20 (toda sudamérica, España, ...).

Si alguien desde Argentina se conecta y en su navegador está indicado que prefiere ver las páginas en Español de Argentina, tendrá en código es-ar, que será distinto del es-co de colombia, etc. etc. y desde luego, distinto del es que has configurado antes.

Hay un truco. Bueno, hay más de una forma de hacerlo. Esta es una de ellas.

Consiste en crear un fichero .htaccess que el servidor web lee antes de servir las páginas. Lo dejas en el mismo directorio. Dentro de él escribes:

Código:
AddLanguage es .es1
AddLanguage es-ar .es2
AddLanguage es-bo .es3
AddLanguage es-cl .es4
AddLanguage es-co .es5
AddLanguage es-cr .es6
AddLanguage es-ec .es7
AddLanguage es-sv .es8
AddLanguage es-us .es9
AddLanguage es-gt .es10
AddLanguage es-hn .es11
AddLanguage es-mx .es12
AddLanguage es-ni .es13
AddLanguage es-pa .es14
AddLanguage es-py .es15
AddLanguage es-pe .es16
AddLanguage es-pr .es17
AddLanguage es-ve .es18
AddLanguage es-do .es19
AddLanguage es-uy .es20
AddLanguage en .en1
AddLanguage en-au .en2
AddLanguage en-bz .en3
AddLanguage en-ca .en4
...
y así con todas las variantes de los idiomas que quieres soportar.

Luego, las páginas 'oficiales' tendrán estos nombres:
Código:
index.html
contenido.html
menu.html
Es decir, sin variar para nada su nombre. Eso nos facilitará su edición con nuestro programa gestor de sitios webs. Pero cada idioma, separado en su carpeta correspondiente (es/, en/, fr/, de/...)

El truco viene ahora. Queremos que el servidor web acceda a la carpeta del idioma que el usuario ha solicitado. Eso quiere decir que tenemos que "guiar" al servidor web desde un fichero que vamos a colocar ahora, hasta el mismo fichero dentro del directorio de idioma. La forma de hacerlo será la de crear una batería de enlaces simbólicos, apuntando a los ficheros de idiomas distintos.

Será mejor verlo con un ejemplo.

Supongamos que un inglés accede a nuestro web y solicita la página index.html. Su cliente web tiene indicado que desea ver las páginas en inglés de Australia (en-au), y así nos llega en la cabecera HTTP: Accept-Language: en-au.Pero nosotros solo tenemos una variante de inglés hecha (en/index.html) así que esa es la página que queremos devolverle.

Gracias a la presencia del fichero .htaccess, el servidor web sabe que
Código:
AddLanguage en-au .en2
que quiere decir que cuando un australiano solicite una página de las nuestras, tiene que buscar por ficheros que tengan como extensión '.en2', en alguna parte del nombre del fichero.

Bien... pues lo que queda por nuestra parte es hacer un enlace simbólico que relacione un fichero con esa extensión, con el fichero en/index.html.

Haremos en realidad dos enlaces simbólicos, así:
Código:
index.html.en -> en/index.html
index.html.en1.en2.en3.en4.en5.en6.en7.en8.en9.en10.en11.en12.en13 -> en/index.html
Fijarse que en la segunda línea hemos creado un fichero que contiene en su nombre todas las extensiones con las variantes de idiomas del inglés.

El servidor web buscará por el directorio actual por un fichero que tenga 'index.html' y '.en2' en el nombre. Encontrará nuestro segundo enlace simbólico, que, finalmente, le redirige a nuestro deseado fichero en/index.html. Y ese es el fichero que se le devuelve al australiano.

El primer enlace simbólico está puesto porque hay ocasiones en que las páginas hacen referencia entre sí (una página puede tener un enlace directo a index.html.en).

No cuesta nada hacer un programa que crea y mantenga esos enlaces simbólicos cada vez que varía el árbol de dependencias del sitio web.

Hay otras formas de hacerlo. Y también se puede variar la notación de las páginas y los enlaces entre ellas, pero lo más complicado de todo esto es mantener un orden para el servidor web y al mismo tiempo trabajar con el programa gestor de sitios.
  #4 (permalink)  
Antiguo 13/12/2007, 19:25
 
Fecha de Ingreso: diciembre-2007
Mensajes: 10
Antigüedad: 16 años, 5 meses
Puntos: 0
Pregunta Re: Idioma en mi página

Hola jferrero bueno entiendo algunas cosas pero tengo una bateria de preguntas.
  1. Eso estamos trbajando solo en un html?. por que eh creado mi index.pl
  2. Pero donde almaceno los textos de los Botones x ejemplo. Enviar Submit en que archvios.
  3. es mejor trabjar con un index.html y lo demas en perl? o hasta el Index puedo hacerlo en pl?

Ok yo estab usando este metodo.
Primero tenia un index.pl que me redireccionaba a una web deacuerdo al idioma de navegador y bien, x ejemplo si yo hablo español. me refirecionaba a miweb.com/index.pl?hl=es HL le puse a la variable del idioma.
Y bien alli en el index.pl cargaba po rl REQUIRE 'idioma.pl' y mas abajo llamaba la funcion
idioma$hl ($hl);
La cual aki le enviaba a variable del idioma y una funcion llamanda:
idiomaes{
->contenidos en español
}
y ella me mandaba los respuestas de los botones en español de igual modo me envia en ingles o en otros idiomas.

¿mi pregunta es Esta bien esta forma?
Me gustaria contactarte para que mires el problema ms de cerca necesita mucha ayua porfavor. es un proyecto educativo y espeor que sea grande. y semi-mundial.
contactamne mi correo es [email protected]
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 11:08.