I have a big problem. Our software was developed only for usage with
German language. Only a few programs are for two languages. We did
this by using different screens, e.g. one format for English, the other
for German; or with override using two different display files.
Now we have to make our software multilingual, at least two languages.
There two plans to do this. First plan is to save all constants for
a program in a file for each language and to read the file at the
beginning of the program. If the user is German he gets the German
translation, if he is Dutch he gets the Dutch translation. If there isn't
a Dutch translation the user gets the English translation because English
will be the main language. This plan will take a long time and lots of
work. So we have a second plan. We do not translate our software via RPG
or DDS, we use the translation tables from GUI. For a lot of words that
will do but we have to translate nearly everything, e.g. customer = Kunde
cust.= Kund. / C. = K. / C = K
Does anybody have some experience with these problems or has
anybody already worked with the translating tables GUI ? Or has
anybody a much better idea ?
Please let me know.
Thanx, Ellen
-----------------------------------------------------------------------
Please answer to newsgroup or to haze...@conne.net.
*** This message was written entirely with recycled electrons ***
-------------------==== Posted via Deja News ====-----------------------
http://www.dejanews.com/ Search, Read, Post to Usenet
Alex Martinez Corria.
PS: Multilingual design and programming on the AS400 is like a chicken
crossing the road. We need all the help we can get. Outside of
comp.software.international are there newsgroups and or any classes for
the multilingual design on the AS400. I have poured through the
documentation but being old and slow I have to hear the same concepts
again and again until a hole is drilled in my head for them to sink in.
Steve Hawkins
usCA...@ibmmail.com
Printer files do not support the MSGID keyword in the DDS. They do,
however, support the MSGCON keyword. This allows you to externalize your
text into message files, but it forces you to compile the printer file for
each language.
Our product is designed to be multi-lingual. We did it as follows:
In DSPF objects, the text literals have been converted to output fields
using the MSGID keyword. This message ID says to look in a *MSGF called
"CONSTANTS" for the MSGID. At run time, there is an OVRMSGF command that
overrides to MSGF "ENGLISH", or "FRENCH" or "GERMAN" etc. This is nice
because we only need one display file objects.
For CMD and PRTF objects, the literals can be externalized to message
files, but they are resolved at compile time not run time.
This results in a run-time application architecture as follows:
OBJLIB - Contains all *PGM, display file and other language-neutral
objects.
DTALIB - Contains all database files. (These could be in OBJLIB)
LNGLIB - Contains all CMD and PRTF objects for language. There would be
multiple language libraries.
You can then control the language someone sees just by manipulating the
library list. NOTE: You could locate the "CONSTANTS" MSGF in the language
library and avoid the need for the OVRMSGF command.
If I were to do it again, I would use the MSGCON keyword in the DSPF's
also, and just put those in the LNGLIB with the other language-specific
objects. Why? Run-time performance is effected by having the MSGID
lookups be dynamic. Also, it makes everything consistent.
Also please note that I am totally ignoring DBCS languages, and I am
glossing over the fact that you need to extend the space on screens and
reports that you use for your literals in order to accommodate most of the
non-English languages.
I hope this helps,
Mark Phippard
SoftLanding Systems
Mark Phippard wrote:
> Printer files do not support the MSGID keyword in the DDS. They do,
> however, support the MSGCON keyword. This allows you to externalize > your text into message files, but it forces you to compile the printer > file for each language.
>
SNIP
> For CMD and PRTF objects, the literals can be externalized to message
> files, but they are resolved at compile time not run time.
SNIP
> This results in a run-time application architecture as follows:
>
> OBJLIB -
> DTALIB -
> LNGLIB -
>
> You can then control the language someone sees just by manipulating the
> library list.
SNIP
> Mark Phippard
> SoftLanding Systems