5.5 Multilingual Process or Function Design Considerations

The following basic guidelines apply to creating and maintaining multilingual applications:

Database Design Considerations

Understand the difference between an application system that is designed to run in different national languages and one that is designed to run in true multilingual mode.

For instance, a software company in France might develop a system that they can sell to Germans (to run in only German) and also to Italians (to run in only Italian). This is a system designed to run in different national languages.

However, a Swiss company may wish to design a system where the end user can, at execution time, elect to run the system in French, German or Italian. This is a true multilingual system.

You will need to use multilingual support in both of these situations, but the type of system you require will make a large difference to the database that you design to support it.

DBCS Considerations

It is almost impossible to use a DBCS language on a machine that does not have DBCS support installed.

The best approach is to implement the system in all other required languages and port it to a machine that does have DBCS support. Then add the DBCS language to the partition definition and enter all dictionary, multilingual variable, file, process, function and component definition DBCS information before recompiling the application.

Note that an application compiled when the current language is a DBCS language may only execute on a machine with DBCS support.

RDML and RDMLX Programming Considerations

The following considerations and guidelines apply to RDML and RDMLX development using multilingual attributes:

     is a classical piece of text from a screen panel. In a multilingual application this text should be associated with a multilingual variables value:

     DEFINE   FIELD(#PANI782) TYPE(*CHAR) LENGTH(76)

              OUTPUT_ATR(PBPI) DEFAULT(*MTXTPANI782)

     DISPLAY  FIELDS((#PANI782 *NOID *OUTPUT) etc, etc .... )

     REQUEST FIELD(#YESNO)

          BEGINCHECK

          VALUECHECK FIELD(#YESNO) WITH_LIST(*MTXTYES *MTXTNO)

                     MSGTXT(*MTXT12345)

          ENDCHECK

     IF (#YESNO = *MTXTYES)

     SUBMIT ... whatever ...

     ENDIF