Retroceder   Foros del Web > Programación para sitios web > Perl y CGI

Respuesta
 
Herramientas Desplegado
Antiguo 12-dic-2007, 12:06   #1 (permalink)
guenz ha deshabilitado el karma
 
Fecha de Ingreso: diciembre-2007
Mensajes: 7
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.
guenz está desconectado   Responder Citando
Antiguo 12-dic-2007, 15:36   #2 (permalink)
$moderador{'Esteban'}
monoswim llegará a ser famoso muy prontomonoswim llegará a ser famoso muy pronto
 
Avatar de monoswim
 
Fecha de Ingreso: noviembre-2002
Ubicación: Buenos Aires - Argentina
Mensajes: 7.330
Enviar un mensaje por MSN a monoswim
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
__________________
MonoSwim

Antes era fanfarrón y canchero, ahora soy perfecto !!!!!!!
monoswim está desconectado   Responder Citando
Antiguo 12-dic-2007, 17:12   #3 (permalink)
Colaborador
jferrero está en el buen camino
 
Avatar de jferrero
 
Fecha de Ingreso: mayo-2006
Ubicación: Valladolid
Mensajes: 332
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.
jferrero está desconectado   Responder Citando
Antiguo 13-dic-2007, 18:25   #4 (permalink)
guenz ha deshabilitado el karma
 
Fecha de Ingreso: diciembre-2007
Mensajes: 7
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 gnzteam@gmail.com
guenz está desconectado   Responder Citando
Respuesta
No hay votos aún.


Herramientas
Desplegado

Normas de Publicación
No puedes crear nuevos temas
No puedes responder temas
No puedes subir archivos adjuntos
No puedes editar tus mensajes

BB code is Activado
Caritas están Activado
[IMG] está Activado
Código HTML está Desactivado


La Zona horaria es GMT -6. Ahora son las 12:05.


Message Board Statistics

LinkBacks Enabled by vBSEO 3.1.0

1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93