Retroceder   Foros del Web > Programación para sitios web > XML

Respuesta
 
Herramientas Desplegado
Antiguo 05-nov-2004, 11:32   #1 (permalink)
josedes está en el buen camino
 
Fecha de Ingreso: abril-2003
Mensajes: 63
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
josedes está desconectado   Responder Citando
Antiguo 05-nov-2004, 13:30   #2 (permalink)
Helbira está en el buen camino
 
Avatar de Helbira
 
Fecha de Ingreso: noviembre-2002
Ubicación: <?xml version="1.0"?><ubicacion>En todos los lugares y a la vez en ninguno</ubicacion>
Mensajes: 1.207
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
__________________
BUSCO TELETRABAJO
Experiencia de mas de 4 años como desarrolladora web en PHP, ASP, XML, XSL, JavaScript, MySQL, PostGres, SQLServer, ...
Helbira está desconectado   Responder Citando
Antiguo 08-nov-2004, 08:01   #3 (permalink)
josedes está en el buen camino
 
Fecha de Ingreso: abril-2003
Mensajes: 63
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é
josedes está desconectado   Responder Citando
Antiguo 08-nov-2004, 09:26   #4 (permalink)
Helbira está en el buen camino
 
Avatar de Helbira
 
Fecha de Ingreso: noviembre-2002
Ubicación: <?xml version="1.0"?><ubicacion>En todos los lugares y a la vez en ninguno</ubicacion>
Mensajes: 1.207
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
__________________
BUSCO TELETRABAJO
Experiencia de mas de 4 años como desarrolladora web en PHP, ASP, XML, XSL, JavaScript, MySQL, PostGres, SQLServer, ...
Helbira está desconectado   Responder Citando
Antiguo 10-nov-2004, 01:38   #5 (permalink)
Helbira está en el buen camino
 
Avatar de Helbira
 
Fecha de Ingreso: noviembre-2002
Ubicación: <?xml version="1.0"?><ubicacion>En todos los lugares y a la vez en ninguno</ubicacion>
Mensajes: 1.207
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>
__________________
BUSCO TELETRABAJO
Experiencia de mas de 4 años como desarrolladora web en PHP, ASP, XML, XSL, JavaScript, MySQL, PostGres, SQLServer, ...
Helbira está desconectado   Responder Citando
Antiguo 17-nov-2004, 15:17   #6 (permalink)
josedes está en el buen camino
 
Fecha de Ingreso: abril-2003
Mensajes: 63
Gracias Helbira nuevamente por tu ayuda, te la agradezco mucho

Saludos

José
josedes está desconectado   Responder Citando
Antiguo 07-dic-2004, 03:38   #7 (permalink)
Helbira está en el buen camino
 
Avatar de Helbira
 
Fecha de Ingreso: noviembre-2002
Ubicación: <?xml version="1.0"?><ubicacion>En todos los lugares y a la vez en ninguno</ubicacion>
Mensajes: 1.207
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?
__________________
BUSCO TELETRABAJO
Experiencia de mas de 4 años como desarrolladora web en PHP, ASP, XML, XSL, JavaScript, MySQL, PostGres, SQLServer, ...
Helbira está desconectado   Responder Citando
Antiguo 15-dic-2004, 14:17   #8 (permalink)
ponzonik está en el buen camino
 
Fecha de Ingreso: noviembre-2004
Mensajes: 31
Pregunta

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"%>
<%
Response.Charset = "iso-8859-1"
'Response.ContentType = "text/plain"
%>
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<title>Test</title>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
</head>
<body>
<% Set XMLdoc = Server.CreateObject("Msxml2.DOMDocument.4.0")
	XMLdoc.async = False
	XMLdoc.validateOnParse = False
	XMLdoc.Load (Server.MapPath("interfaz.xml"))
	XMLdoc.setProperty "SelectionLanguage", "XPath"
	If XMLdoc.parseError.errorCode <> 0 Then
		Response.Write(Cstr(XMLdoc.parseError.filepos & "<br>"))
		Response.Write(Cstr(XMLdoc.parseError.line & "<br>"))
		Response.Write(Cstr(XMLdoc.parseError.linepos & "<br>"))
		Response.Write(Cstr(XMLdoc.parseError.reason & "<br>"))
		Response.Write(Cstr(XMLdoc.parseError.srctext & "<br>"))
		Response.Write(Cstr(XMLdoc.parseError.errorCode & "<br>"))
	End If
	lang = "espaniol"
	Set elementos = XMLdoc.selectNodes ("/secciones/navegacion/menu/elemento[@ocultar!='si']/" & lang & "[@ocultar!='si']/nombre")
	Set titulos = XMLdoc.selectNodes ("/secciones/navegacion/menu/elemento[@ocultar!='si']/" & lang & "[@ocultar!='si']/titulo")
	Set urls = XMLdoc.selectNodes ("/secciones/navegacion/menu/elemento[@ocultar!='si']/url")
	For i = 0 to elementos.length - 1
		Set colElementos = elementos.nextNode
		Set colUrls = urls.nextNode
		Set colTitulos = titulos.nextNode
		html = "<a href=" & Chr(34) & colUrls.text & Chr(34) & " title=" & Chr(34) & colTitulos.text & Chr(34) & ">" & colElementos.text & "</a><br />"
		Response.Write (html)
		'Response.Write(SelectSingleNode("/secciones/navegacion/menu/elemento[@ocultar!='si']["&Cstr(i)&"]/espaniol[@ocultar!='si']/nombre").Text)
	Next
 %>
</body>
</html>
y el .xml es el siguiente:
Código:
<?xml version="1.0" encoding="iso-8859-1"?>
<secciones>
	<navegacion>
		<menu>
			<elemento ocultar="" destacado="si">
				<nombre>Home</nombre>
				<espaniol ocultar="">
					<nombre>Home</nombre>
					<titulo>Página principal de Partir Viajes E.V.T.</titulo>
				</espaniol>
				<inglés ocultar="">
					<nombre>Home			</nombre>
					<titulo>Home page of Partir Viajes.</titulo>
				</inglés>
				<url>../index.asp</url>
			</elemento>
			<elemento ocultar="" destacado="">
				<nombre>Aereos</nombre>
				<espaniol ocultar="">
					<nombre>Pasajes Aéreos</nombre>
					<titulo>Información sobre pasajes aéreos en la Argentina y hacia el exterior.</titulo>
				</espaniol>
				<inglés ocultar="">
					<nombre>Plane tickets</nombre>
					<titulo>View details and prices of plane tickets to travel within Argentina.</titulo>
				</inglés>
				<url>./aereos.asp</url>
			</elemento>
			<elemento ocultar="" destacado="">
				<nombre>Destinos</nombre>
				<espaniol ocultar="">
					<nombre>Destinos turísticos.</nombre>
					<titulo>Información sobre paquetes turísticos en la Argentina y hacia el exterior.</titulo>
				</espaniol>
				<inglés ocultar="si">
					<nombre/>
					<titulo/>
				</inglés>
				<url>./destinos.asp</url>
			</elemento>
			<elemento ocultar="" destacado="">
				<nombre>Argentina</nombre>
				<espaniol ocultar="si">
					<nombre/>
					<titulo/>
				</espaniol>
				<inglés ocultar="">
					<nombre>Visit Argentina.</nombre>
					<titulo>Choose among different ways to enjoy your vacations in Argentina and which places to visit.</titulo>
				</inglés>
				<url>./argentina.asp</url>
			</elemento>
			<elemento ocultar="" destacado="">
				<nombre>Institucional</nombre>
				<espaniol ocultar="">
					<nombre>La Empresa</nombre>
					<titulo>Conozca nuestra trayectoria y por qué somos la opción más confiable a la hora de planear su viaje o ayudar a su empresa a alcanzar nuevos mercados. Vea nuestra información de contacto.</titulo>
				</espaniol>
				<inglés ocultar="">
					<nombre>About Us</nombre>
					<titulo>Know about us and why our clients trust us for the planning of their vacations or their professional needs.</titulo>
				</inglés>
				<url>./institucional.asp</url>
			</elemento>
		</menu>
		<mapa>
			<elemento mostrar="" destacado="">
				<nombre>Argentina</nombre>
				<espaniol>
					<nombre>Argentina</nombre>
					<titulo>Conozca distintas opciones para pasar sus vacaciones en Argentina.</titulo>
				</espaniol>
				<inglés>
					<nombre>
					</nombre>
					<titulo>
					</titulo>
				</inglés>
				<url>arg
				</url>
			</elemento>
		</mapa>
	</navegacion>
</secciones>
en el xml tengo un nodo /secciones/navegacion/menu que tiene los links de uno de los menues (horizontal y arriba) de la p'agina.
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!!!

Última edición por ponzonik; 15-dic-2004 a las 14:20.
ponzonik 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 05:52.


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