Sitio web en varios idiomas

Hola! estoy migrando un sitio web estático para hacerlo dinámico con asp.net C#. En principio va a estar disponible en tres idiomas (español, gallego...

La FAQ Sitio web en varios idiomas tiene

Pertenece a la categoría:

Pregunta
Hola! estoy migrando un sitio web estático para hacerlo dinámico con asp.net C#.
En principio va a estar disponible en tres idiomas (español, gallego e inglés), pero quiero dejarlo abierto para añadir más adelante otros. He estado informándome sobre el tema pero no he encontrado lo que necesito. Mi primera idea era tener una subcarpeta por cada idioma en el directorio "App_LocalResources" con los archivos de recursos de cada página (aquí haría la traducción de cada control de servidor de la página correspondiente). Sin embargo no estoy seguro de que utilizar únicamente este método sea la mejor opción. Me gustaría saber si alguien me puede guiar en las posibilidades que hay para diseñar esto y las ventajas e inconvenientes que tienen.
Además sería de mucha ayuda si alguien me pudiera comentar como se esta haciendo esto en los sitios web actuales.

Muchas gracias de antemano.


Respuesta de Wey
Lo mejor es que los literales los guardes en un fichero o BBDD (a mi gusto, bbdd) y asi dependiendo de una variable cargas unos u otros, una posibilidad de tabla seria

literales:
Id | Idioma | Texto
-------------------
0 |es-ES | Hola
0 |es-GL | Holiña (:p)
0 |en-UK |Hello

Donde la PK serian id+idioma. O en vez de un id numerico puedes utilizar algo mas intuitivo

Id | Idioma | Texto
-----------------------
saludo |es-ES | Hola
saludo |es-GL | Holiña (:p)
saludo |en-UK |Hello

Con una variable cargas los textos de uno u otro idioma y guardas en un array asociativo el id y el texto, y escribiendo (en php) echo $array['saludo']; te mostrara el saludo dependiendo del idioma. Y puedes poner tantos idiomas como quieras :D

De todas formas en Desarrolloweb tienen un articulo sobre hacer web en varios idiomas que seguro te ayuda.

Complementar la respuestaComplementar la respuesta
Volver al árbol de categoríasVolver al árbol de categorías

Comentarios
Fue enviado 1 comentario a la faq
1 comentario revisado:
Por: Pablo
17/2/09
Buenas,

yo no te recomiendo la opción de la BBDD porque de esta manera debes hacer una consulta por cada página que se muestra para cada uno de los clientes del servidor.

Si programas con Visual Studio es tan fácil como ver la página que quieras traducir en vista de diseño (el .aspx) y en la barra de herramientas, presiona la imagen de "Generar Recurso Local", que normalmente se sitúa a la derecha de la comprobación de accesibilidad de la página. Cuando termine el PC, tendrás una carpeta App_LocalResources y un archivo llamado igual que tu página, pero la estensión final es .resx

Si quieres tener otros idiomas, guarda el archivo con extensión fr-FR.resx por ejemplo para idioma frances, en-GB para inglés, .... Si buscas por Internet, encontrarás las abreviaturas para otros idiomas.

Busca además como sobreecribir el método InitializeCulture de la página, el cual es necesario para que el servidor sepa que página de recurso ha de escoger.

Yo he hecho varios portales con esta tecnología y es superfiable y da gran versatilidad.

San Google es maravilloso, sólo hay que molestarse en buscar.

Volver al árbol de categoríasVolver al árbol de categorías
Alojados en el grupo