![]() |
XML y manejo de Idiomas Ante todo mis saludos a todos. Tengo el siguiente problema: He desarrollado un site con JSP+Servlets+tomcat sin utilizar nada de XML, pero ahora es necesario tener la aplicación tanto en Español como en Portugues, así cuando el usuario se logea a la aplicación se le muestre en el idioma seleccionado por él. Como XML me puede ayudar en esto y no tener que replicar todas las páginas con los textos en Portugues. Creo que la solución es muy simple, pero no se como puedo hacer esto. Gracias |
No tendrás que duplicar tus páginas en JSP pero sí tus páginas XML. Eso lo entiendes? Es decir, no se que nivel tienes de XML. Entiendes el concepto de separar contenido de diseño que es en lo que se basa el uso de XML? Besos |
Gracias Helbira por tu atención. Tengo cierta idea de la separación de "contenido de diseño", eso lo se y creo estar claro, pero no veo como trabajar diferentes idiomas? José |
Tendras tantos XML como idiomas. Estos XML tendran la misma estructura de etiquetas y atributos pero los contenidos de texto son distintos... es decir. son los mismos pero escritos en sus respectivos idiomas. Otra opcion es en un solo XML tener las etiquetas repetidas pero con algun prefijo o sufijo que te distinga el idioma en el que esta escriot sus contenidos. Pero esta opcion hace mas pesada la carga del XML. BEsos |
en.xml <?xml version="1.0" encoding="iso-8859-1"?> <root> <saludo>Hello</saludo> </root> es.xml <?xml version="1.0" encoding="iso-8859-1"?> <root> <saludo>Hola</saludo> </root> O bien.. la segunda solución que te propongo que es tener las dos traducciones en un solo XML seria algo asi: saludo.xml <?xml version="1.0" encoding="iso-8859-1"?> <root> <saludo lang="en">Hello</saludo> <saludo lang="es">Hola</saludo> </root> |
Gracias Helbira nuevamente por tu ayuda, te la agradezco mucho Saludos José |
Pero sigues sin entenderlo, no? Quizás se me olvidó ponerte luego un ejemplo de como usar eso en XSL para mostrar solo los contenidos en el idioma seleccionado... es eso lo que te falta? |
hola gente... posteo acá porque tengo la misma consulta que josedes estoy armando el sitio de una agencia de turismo, y quiero poder seleccionar con facilidad el idioma. ahora, no se hasta que punto usar el script ASP para transformar los datos del xml en xhtml de la pagina y no XSLT. me explico: el .asp seria en principio asi: Código: <%@LANGUAGE="VBSCRIPT" CODEPAGE="1252"%>Código: <?xml version="1.0" encoding="iso-8859-1"?>el asp selecciona todos los elementos que no sean ocultos y los transforma en links. el problema llega cuando, por ejemplo, tengo un elemento en el que quiero esconder el boton en castellano. la agencia de turismo esta en buenos aires, entonces si entra alguien de argentina deberia ver la siguiente barra de menus: home | pasajes | destinos turisticos | la empresa pero quiero que un angloparlante vea: home | visit argentina | about us por eso los nodos elemento/espaniol tienen un atributo que se llama ocultar. ahora, con la consulta XPath que mande ("/secciones/navegacion/menu/elemento[@ocultar!='si']/"&lang&"[@ocultar!='si']/nombre") el asp me devuelve una coleccion de 4 de los 5 objetos, que son los childs elemento #1,2,4 y 5 de menu. ahora, cuando lo tengo que juntar con la URL, el script agarra las primeras 4, por lo que en los dos ultimos links no coinciden la URL con el titulo del link. es un quilombo, ¿se entiende? de cualquier forma en http://www.partirviajes.com.ar/v3/xml/xml.asp pueden ver el codigo que generan los archivos que pase. --------------------------------------------------------------------- ahora MÁS EN GENERAL, ¿cómo me convendría hacer con el tema de la interfaz? ¿usar ASP o XSLT (el problema que le veo al XSLT es que cada parte del sitio tendría que transformar el xhtml según donde se encuentre... para la barra de menú tendría que transformar en una lista, etc)? ¿debería cambiar la estructura del XML? mil gracias desde ya!!! |
| La zona horaria es GMT -6. Ahora son las 10:04. |
Desarrollado por vBulletin® Versión 3.8.7
Derechos de Autor ©2000 - 2026, Jelsoft Enterprises Ltd.