Si me permitís
opinar, yo prefiero tener un fichero de descripciones por idiomas con un
idioma por defecto y cargar campos de pantalla tradicionales con las
descripciones del fichero en el idioma correspondiente. Esto da un poco más de
trabajo a la hora de cargar las descripciones en pantalla (aunque creando un
programa de servicio con las funciones necesarias se minimiza este trabajo),
pero facilita el control de los literales que faltan por traducir en el resto de
idiomas ( con un sql lo tendrías), y además permite el uso de un idioma 'por
defecto', para posibles literales independientes del idioma ( además, de esta
forma, si un literal no está traducido a un idioma podemos hacer que
en ese caso salga en el idioma por defecto. Usando los mensajes, si uno no
está definido en el correspondiente idioma saldrá en blanco <¿ o se producirá
un error ? >)
De cara a una
posible aplicación de mantenimiento de las descripciones veo también más fácil
realizarla si éstos están en un fichero que si están en x archivos de
mensajes.
Este montaje funciona
de maravilla, de hecho nosotros lo tenemos montado de manera que podemos
cambiar los textos de las pantallas en el momento de estar ejecutando la
aplicación pulsando una tecla de función sobre el texto. El montaje es un poco
sofisticado pero el resultado es excelente y se pueden soportar múltiples
idiomas simultáneamente eligiendo el usuario en cual quiere trabajar en
cualquier momento. Y todo esto sin compilaciones o intervenciones externas al
propio usuario. Claro todo esto esa controlado por seguridad para que no te
"desgracie" la aplicación cualquier manitas.
De:
[EMAIL PROTECTED] [mailto:[EMAIL PROTECTED]
En nombre de Guillermo
Andrades Enviado el: jueves,
29 de enero de 2004 12:23 Para:
[EMAIL PROTECTED] Asunto: RE: Delegaciones y
multilenguajes
puedes montarlo
simplemente haciendo que los literales de pantalla en lugar de ser constantes
sean mensajes.
por ejemplo, en lugar
de una linea DDS como esta
A
05 03'Fecha de Aviso........'
escribes una como
esta A
MM0020954
22 05 03 MSGID(DSP0170
LITERALES)
en la
biblioteca de programas (p.e.) creas un fichero de mensajes
LITERALES con CRTMSGD, y con WRKMSGD añades los mensajes, en este caso el
DSP0170.
a la hora de ejecutar
el pgm la bib de programas esta en la libl, de forma que encuentra el MSGF
LITERALES y el literal se ve en el idioma por omision.
ahora para tener un
segundo idioma crear un MSGF LITERALES en la biblioteca LITENG (Literales
English), y creas los mismos codigos de mensajes (DSP0170 en este caso)
traducido.
en el CL que llama al
pgm que inicia la aplicacion, simplemente debes asegurarte que la biblioteca
LITENG (o el idioma que sea) este antes que ninguna (*FIRST,
CUR).
el funcionamiento es
transparente, incluso se pueden cambiar los mensajes con WRKMSGD y al
siguiente pantallazo se visualiza el nuevo texto.
(lo del MM0020954 es
simplemente un id diferenciador por cada mensaje, auiza no de error si no se
hace asi, pero es que en nuestro caso lo genera auto una utilidad wur
usamos).
Saludos, Guillermo
Andrades CPI Software http://www.cpis.es http://www.RpgForWeb.com
-----Mensaje
original----- De:
[EMAIL PROTECTED] [mailto:[EMAIL PROTECTED]
En nombre de Juan
Antonio Enviado el: jueves,
29 de enero de 2004 10:55 Para: Forum Asunto: Re: Delegaciones y
multilenguajes
¿Tendrías algún ejemplo para ver
este montaje?
En cuanto a soft ya existente que
comentas ¿conoces alguno para ver costes etc?.
----- Original Message -----
Sent: Friday,
January 23, 2004 3:11 PM
Subject: RE:
Delegaciones y multilenguajes
Utiliza los MSGID,
no tienes que recompilar y luego montate una pequeña aplicacion para su
mantenimiento. Funciona muy bien.
-----Original
Message----- From: Juan
Antonio [mailto:[EMAIL PROTECTED] Sent: 23 January 2004 14:36 To: [EMAIL PROTECTED] Subject: Re: Delegaciones y
multilenguajes
Claro, lo que se pretende es que
el posterior mantenimiento de esta aplicación tambíen sea fácil y de
poco coste. El hecho de no tener que recompilar infinidad de veces y que sea
algo que se pudiera tratar como si las constantes fueran
variables.
----- Original Message -----
Sent:
Friday, January 23, 2004 1:10 PM
Subject: RE:
Delegaciones y multilenguajes
si te refieres a
programas "tradicionales" con DDS de pantalla/impresora, puedes usar MSGID
o MSGCON en lugar de literales/constantes, y asi es facil traducir los
mensajes y usar uno o otro MSGF segun el idioma.
en el caso de
msgid es transparente, en el caso de msgcon se deben compilar las dds con
cada idioma (p.e. quiza en listados).
otra forma es
usar una rutina que lea los mensajes de un MSGF, o incluso un fichero, y
moverlos a campos de trabajo que es lo que se imprime (en pantallas es
facil usar msgid).
solo una idea,
hay otras formas, incluso productos, pero si la aplicacion es nueva lo del
msgid puede ser buena idea.
Saludos, Guillermo Andrades CPI
Software http://www.cpis.es http://www.RpgForWeb.com
-----Mensaje
original----- De:
[EMAIL PROTECTED] [mailto:[EMAIL PROTECTED]
En nombre de Juan
Antonio Enviado el:
viernes, 23 de enero de 2004 11:30 Para: Forum Asunto: Delegaciones y
multilenguajes
Necesitaría conocer
sugerencias o forma fácil de realizar, pros y contras, posibles problemas
que puedo encontrar o costes adicionales para la realización de una
aplicación que contemple posibles idiomas según actuales y futuras
delegaciones.
Se trataría a nivel de
interfaz de usuario final e impresos.
Este correo electrónico y los documentos que lo acompañan, pueden
contener información reservada y/o confidencial dirigida exclusivamente
al destinatario. Si Vd. no es el destinatario, no está autorizado a copiar
o distribuir esta comunicación a ninguna otra persona. Si ha recibido este
correo electrónico por error, le rogamos que nos lo devuelva mediante reenvío
a la dirección electrónica del remitente, y lo elimine de su sistema.
Gracias por su colaboración.
------------------------------------
The information in this e-mail and in any attachments is confidential
and solely for the attention and use of the named addressee(s). If you
are not the addressee indicated in this message, you may not copy or
deliver this message to anyone. If you have received this communication
by error, please, notify the sender by reply e-mail and destroy this
message. Thank you very much for your help.
|
|