|
You understand right. We choose to have multiple objects (one per language). For menu and printer file, you do not have a choice. For command and display file, you have options. For command, it is fairly straightfoward to code one object for multi language (using the PMTFILE keyword on the CRTCMD command) For display file, if you want to avoid multiple object, you have 2 options (that I know of): - Code output field in the disply file instead of constant and put value in those filed from within the RPG program (I suggest avoiding this method) - Use the MSGID keyword so that constant text is extracted at run time from a message file. To swith message file, either use OVRMSGF or change the LIBL to have the correct MSGF detected first. the draw back with this method (and it is the only draw back I can find) is that if you are desining your display file with SDA, all you see are OOOOO instead of the text from the message, so this make it hard to develop and test a display file. This alone made us choose to create an object per language but it is your choice. As for general constant like "F3-Exit" we choose to repeat it in every MSGF for simplicity reasons (1 MSGF name per DSPF) I know that we can now use CODE400 to replace SDA. I did not check to see if it was better when working with MSGID. Hope this help PS At one time I had a plan to develop a utility to convert the MSGCON keyword to MSGID and back so I could develop with MSGCON and see the result while coding and convert to MSGID for compile. But I never got around to it. Denis Robitaille Directeur services technique TI 819 363 6130 SUPPORT Jour (EST) Daytime : 819-363-6134 En-dehors des heures (EST) After hour : 819-363-6158 Network Status : 819-363-6157 >>> ArcoSimonse@xxxxxxxxxxxxxxxxx 2005-06-06 16:02:33 >>> Dennis, Thanks for the detailed explanation. It looks pretty good. We haven't done much with message files until now, so next question comes up: If I understand you right you have to compile every dspf against its language-specific messagefile. Is there no way to avoid this? I try to find a way to minimize the amount of neccesary objects. And do you define general constants like "F3=Exit" also in every messagefile? TIA, Arco. > -----Oorspronkelijk bericht----- > Van: rpg400-l-bounces@xxxxxxxxxxxx > [mailto:rpg400-l-bounces@xxxxxxxxxxxx] Namens Denis Robitaille > Verzonden: maandag 6 juni 2005 15:48 > Aan: rpg400-l@xxxxxxxxxxxx > Onderwerp: Re: multi language interfaces > > In my company, we do support multi language (french, english, > german and sweedish). We have been doing this for more than > 10 years. Here is how we do it: > > - there is no language specific item in any RPG/CL/CMD/MNU > program. Every language specific element comes from MSGF > - We use one library per language and only the primary > language library (french in our case) has PGM sourcre and object > Ex: CGLF, CGLD (CGL in French, CGL in Deutch ) > - The secondary language libraries only contains MSGF and > language specific object (no source) like Menu, display files ... > - The JOBD of the user puts the correct library in the > correct sequence > - We use message constant in display and printer file. This > imply one source but several objects. I would have preffered > one object, but if you use SDA to design your screen, message > ID are a pain because you have no way of seeing how things look. > - We use one message file per language/display files (PGM > xxxxxR DSPG xxxxxD MSGF xxxxxG) > - This method has the advantage of requiering no change in > the RPG programs. > - We use a user startup program to change the system library > list to put the correct QSYS9999 in front of QSYS so the user > sees IBM stuff in the correct language (WRKSPLF ...) > - since we use MSGF extensively, we develop a replacement > program for WRKMSGF. Ours allows us to copy a message from > another, to filter a message file with certains keyword ... > All stuff that IBM should have added a lon time ago. > - The ony missing thig we have is the initial singnon screen > and any IBM message that can pop upo before the user start up > program is ran. > > Overall this method has proven to be the best balance between > flexibility and work required. > > Hope this helps > > Denis Robitaille > Directeur services technique TI > 819 363 6130 > > SUPPORT > Jour (EST) Daytime : 819-363-6134 > En-dehors des heures (EST) After hour : 819-363-6158 Network > Status : 819-363-6157 > > >>> ArcoSimonse@xxxxxxxxxxxxxxxxx 2005-06-06 05:37:23 >>> > Hi all, > > In our shop 95 % of the applications is RPG with 5250 user interfaces. > Almost all of the display files are hardcoded with Dutch > conversations. > Management has decided that all new applications should have > multilangual user interfaces, based on user preferences. > The system language (we are on V5R2) is English and that will > stay as it is. Only the applications become multilang interfaces. > > I googled around but can't find much about how to implement > such thing. > Does anybody have a good starting point for this? > > Many thanks, > > Arco Simonse > pgmr > > > > DISCLAIMER: > This message contains information that may be privileged or > confidential and is the property of C.Meijer B.V. It is > intended only for the person to whom it is addressed. If you > are not the intended recipient, you are not authorized to > read, print, retain, copy,disseminate, distribute, or use > this message or any part thereof. If you receive this message > in error, please notify the sender immediately and delete all > copies of this message. > > This footnote also confirms that this email message has been > swept by the presence of computer viruses > > -- > This is the RPG programming on the AS400 / iSeries (RPG400-L) > mailing list To post a message email: RPG400-L@xxxxxxxxxxxx > To subscribe, unsubscribe, or change list options, > visit: http://lists.midrange.com/mailman/listinfo/rpg400-l > or email: RPG400-L-request@xxxxxxxxxxxx Before posting, > please take a moment to review the archives at > http://archive.midrange.com/rpg400-l. > > > > -- > This is the RPG programming on the AS400 / iSeries (RPG400-L) > mailing list To post a message email: RPG400-L@xxxxxxxxxxxx > To subscribe, unsubscribe, or change list options, > visit: http://lists.midrange.com/mailman/listinfo/rpg400-l > or email: RPG400-L-request@xxxxxxxxxxxx > Before posting, please take a moment to review the archives > at http://archive.midrange.com/rpg400-l. > > DISCLAIMER: This message contains information that may be privileged or confidential and is the property of C.Meijer B.V. It is intended only for the person to whom it is addressed. If you are not the intended recipient, you are not authorized to read, print, retain, copy,disseminate, distribute, or use this message or any part thereof. If you receive this message in error, please notify the sender immediately and delete all copies of this message. This footnote also confirms that this email message has been swept by the presence of computer viruses
As an Amazon Associate we earn from qualifying purchases.
This mailing list archive is Copyright 1997-2024 by midrange.com and David Gibbs as a compilation work. Use of the archive is restricted to research of a business or technical nature. Any other uses are prohibited. Full details are available on our policy page. If you have questions about this, please contact [javascript protected email address].
Operating expenses for this site are earned using the Amazon Associate program and Google Adsense.