Comunidad de diseño web y desarrollo en internet online

Implementar multilenguage

Citar            
MensajeEscrito el 06 Sep 2007 07:57 pm
Hola queria preguntaros como implementariais una app con multilenguage. A mi se me a ocurrido la siguiente "chapuzilla":

Tengo 1 carpeta con cada idioma (español,ingles...), y en cada 1 guardo un fichero xml con el texto de cada componente (ej: menuBar.xml...) . Entonces cuando se cambia de idioma en la web solo habria que cambiar la ruta del fichero:

spanish/menuBar.xml --> english/menuBar.xml (esto lo copie del tio phpnuke ...)

Ahora me viene el problema: no consigo que toooodos los componentes de mi aplicacion ejecuten su funcion xa cambiar de idioma.

El problema está en que la unica forma que veo xa poder seguir adelante es creando un evento presonalizado "languageEvent" desde el componente que tiene la barra de idiomas. Así, cada componente de la apliacion tendria un listener "esperando" la notificacion de la barra de idioma y cuando se pulse en 1 idioma se notifique a tooooodos los componentes de mi aplicacion xa que actualizen el fichero xml del idioma . Fale pos esto ultimo es lo que no me sale.

No os pido q me resolvais toodo el problema q xa eso ya stoy yo... xo ¿es correcta mi idea? si es asi ¿me podriais poner 1 ejemplo de lo siguiente?

1 evento personalizado con varios componentes escuchandolo y que al hacer click en 1 todos los listeners ejecuta una traza?

Asias a todos!!

Por engorila

8 de clabLevel



 

firefox
Citar            
MensajeEscrito el 06 Sep 2007 10:27 pm
No es una mala opción, de hecho puedes crear tu propio tipo de evento heredando de Event, y añadirle la información que requieras enviar a los componentes. Pero personalmente para este caso suelo optar por un patrón Observer, de modo que el parseador de XML's cuando lo hace y obtiene toooodos los datos necesarios en memoria, simplemente notifica a todos sus observadores que hay datos nuevos, y estos acceden a ellos actualizándose.

Es un patrón bastante simple de implementar, dale una miradita e inténtalo ;)

Por MorphX

SWAT Team

982 de clabLevel

3 tutoriales

  SWAT

La Telaraña Digital

firefox
Citar            
MensajeEscrito el 07 Sep 2007 09:24 am
pos probare cn el patron observador, ya t contare!

Por engorila

8 de clabLevel



 

firefox
Citar            
MensajeEscrito el 07 Sep 2007 02:23 pm
Buena idea, lo del Observer. Yo tengo otra.

Yo me apoyaría en otro patrón, Singleton. En mi clase Singleton, tendría una propiedad "Bindable", que contenga un xml. Así solo cambio el XML, y se actualiza todo lo que se conecte al XML. Vamos es como aplicar el patrón Observer, pero aprovechando las ventajas de Flex.

^^

Por Dano

BOFH

4273 de clabLevel

14 tutoriales
4 articulos
10 ejemplos

Genero:Masculino   Bastard Operators From Hell Premio_Secretos

Lugar estratégico para vigilarte

firefox
Citar            
MensajeEscrito el 08 Sep 2007 07:40 pm
Usar directamente las opciones de data binding de Flex no seria buena opcion?

Yo me armé recien un ejemplo bien sencillo y me anduvo sin problemas. Siempre hablando de elementos estaticos de la interface (texto de botones, labels, etc).

Si a alguien le interesa lo subo a algun lado. Pero más que nada me interesa saber si el data binding no es una opción válida y por que?

Saludos.

Por EmeniusXp

1 de clabLevel



 

firefox
Citar            
MensajeEscrito el 08 Sep 2007 09:29 pm
Emenius, si es válido, de hecho lo que yo propongo utitliza el binding de Flex.

Algo así:

Código :

<mx:Label text="ClaseSingleton.textoUno" />


Por eso decía que aprovechamos el binding Flex, y aplicamos el patrón Singleton.


Saludos
^^

Por Dano

BOFH

4273 de clabLevel

14 tutoriales
4 articulos
10 ejemplos

Genero:Masculino   Bastard Operators From Hell Premio_Secretos

Lugar estratégico para vigilarte

firefox
Citar            
MensajeEscrito el 08 Sep 2007 09:58 pm
[Bindable] es un Observer a nivel de FrameWork :P, pensé que iba a usarlo en Flash que es donde lo implementé yo ;)

Por MorphX

SWAT Team

982 de clabLevel

3 tutoriales

  SWAT

La Telaraña Digital

firefox
Citar            
MensajeEscrito el 10 Sep 2007 10:04 am
Ey me mola muxo que ableis de este tema ya que me gustaria llegar a obtener la solucion + optimizada (los que somos "autonomos" nunca sabremos los truquis que utilizan las empresas xa estas cosillas) ... aqui va mi parrafada:

Lo delpatron singelton sta d pm xo veo que acer 1 solo fichero por idioma xa toda 1 aplicacion puede ser 1 fichero muy pesado de mantener (ejemplo, si añado 1 botón y tengo q buscar dnd stan los textos de ese componente puede ser 1 poco caos... siempre que lo queramos tener ordenado, sino no hay problema XD ) x eso pensaba que cada componente debe tener sus propios ficheros de idioma.

El problema viene cuando cada componente tiene su fichero, os explico: yo utilizo <httpservice/> xa leer el xml con el idioma actual (tengo 1 variable con el patron singelton "currentLanguage" que guarda el idioma actual) y cuando cambia el idioma la variable cambia xo el <httpservice/> no ya que su url apunta al fichero con el que se creo (en concreto la url de cada httpservice es "languages/{AppModelLocator.getInstance().getCurrentLanguage()}"/nombreComponente.xml). El colega httpservice no debe ser mu listo xq no se da cuenta de que su url a cambiado... x ello se me ocurrio que la unica forma que se "enterara" era por medio de los eventos (probe con los predefinidos pero no se ajustaban a lo que queria...)

Asique lo unico q veo "factible" xa esta "chapuzilla" es lo del patron observador, ya que el sujeto notificaria a todos los httpservices que deben refrescar su url. Todavia no lo e implementado (espero que aya otra alternativa...).

X ejemplo si encontrara la forma de leer 1 xml y que se enterara el solito de q se a cambiado el fichero pos no tocaria acer na +, probe a usar <mx:XML/> xo en su propiedad source no me deja poner 1 variable!!!

Otra alternativa q e pensao es pasar de usar ficheros XML e implementarlo mediante clases, en las variables se guardarian los textos... xo esto no lo veo mu claro...

Asique sigo estancao.

1 saludete a tos y asias x vuestras opiniones !!!

Por engorila

8 de clabLevel



 

firefox

 

Cristalab BabyBlue v4 + V4 © 2011 Cristalab
Powered by ClabEngines v4, HTML5, love and ponies.