4.5 Multilingual Database Design Considerations

Some important design considerations apply to developing truly multilingual applications. Consider the following simple sequence of screen panels representing a product inquiry:

 

                          Specify Product Number                      

                                                                      

          Key in Product Number and press Enter.                      

                                                                      

          Product Number . . . . . . . 64786                          

                                                                      

 

 

 

  

                           Product Details                          

                                                                    

          Product Number . . . . . :  64786                          

          Description  . . . . . . :  1 kg plastic bag of cane sugar 

          Short Description  . . . :  SUGAR 1KG                      

          Price  . . . . . . . . . :  2.45                            

          Stock on Hand  . . . . . :  7685                            

                                                                     

 

 

 

Initially the RDML program could be coded like this:

GROUP_BY NAME(#PANEL001) FIELDS(#PRODNO #PRODES #PROSDES #PRICE #STOCK)

BEGIN_LOOP

REQUEST FIELD((#PBINST01 *OUTPUT *NOID) #PRODNO)

FETCH FIELDS(#PANEL001) FROM_FILE(PRODMST) WITH_KEY(#PRODNO)

        IF_STATUS IS_NOT(*OK)

        MESSAGE MSGTXT(*MTXT12347)

        ELSE

        DISPLAY FIELDS(#PANEL001)

        ENDIF

END_LOOP

By setting up the correct multilingual attributes for this program you can instantly achieve the following variations in this program. Refer to Specifying a Field's Multilingual Attributes for details.

Execute the application in French

 

 

                     Specification du Numero de Produit               

                                                                      

          Tapez le Numero de Produit puis faites Enter                

                                                                      

          Numero de Produit  . . . . . 64786                          

                                                                      

 

 

 

 

                         Details du Produit                           

                                                                      

          Numero de Produit  . . . :  64786                          

          Description  . . . . . . :  1 kg plastic bag of cane sugar 

          Description Abregee  . . :  SUGAR 1KG                      

          Prix . . . . . . . . . . :  2.45                           

          Stock Disponible . . . . :  7685                           

                                                                     

 

 

 

Execute the application in German

 

 

                         Produkt Nummer Angeben                       

                                                                      

          Geben Sie die Produkt Nummer ein und drucken Sie Eingabe    

                                                                      

          Produkt Nummer . . . . . . . 64786                          

                                                                      

 

 

 

 

                             Produkt Detail                           

                                                                      

          Produkt Nummer . . . . . :  64786                          

          Seschreibung . . . . . . :  1 kg plastic bag of cane sugar 

          Kurzbeschreibung . . . . :  SUGAR 1KG                      

          Preis  . . . . . . . . . :  2.45                           

          Verfugbare Menge . . . . :  7685                           

                                                                      

 

 

 

Notice what's wrong?

The product description and short description shown are still in English.

This simple example illustrates a very important point.

LANSA can get all the details it knows about out on the screen in the correct language, but because this is intended to be a completely multilingual program, it should have stored the product details in two separate files:

If the program was coded like this (making use of the system variable *LANGUAGE to determine the language):

GROUP_BY NAME(#PANEL001) FIELDS(#PRODNO #PRODES #PROSDES #PRICE #STOCK)

 

BEGIN_LOOP

REQUEST FIELD((#PBINST01 *OUTPUT *NOID) #PRODNO)

FETCH FIELDS(#PANEL001) FROM_FILE(PRODMST) WITH_KEY(#PRODNO)

FETCH FIELDS(#PANEL001) FROM_FILE(PRODLNG) WITH_KEY(*LANGUAGE #PRODNO)

         IF_STATUS IS_NOT(*OK)

         MESSAGE MSGTXT(*MTXT12347)

         ELSE

         DISPLAY FIELDS(#PANEL001)

         ENDIF

END_LOOP

 

The result would be a true multilingual system where side by side users could be running the same program in completely different languages.

Execute the application in French

 

 

                     Specification du Numero de Produit               

                                                                      

          Tapez le Numero de Produit puis faites Enter                

                                                                      

          Numero de Produit  . . . . . 64786                          

                                                                      

 

 

 

 

                          Details du Produit                          

                                                                      

          Numero de Produit  . . . :  64786                          

          Description  . . . . . . :  1 kg sac plastique de sucre    

          Description Abregee  . . :  SUCRE 1KG                      

          Prix . . . . . . . . . . :  2.45                           

          Stock Disponible . . . . :  7685                           

                                                                      

 

 

 

Execute the application in German

 

 

                         Produkt Nummer Angeben                       

                                                                      

          Geben Sie die Produkt Nummer ein und drucken Sie Eingabe    

                                                                      

          Produkt Nummer . . . . . . . 64786                          

                                                                      

 

 

 

 

                             Produkt Detail                           

                                                                      

          Produkt Nummer . . . . . :  64786                          

          Seschreibung . . . . . . :  1 kg Plastiksack mit Rohzucker 

          Kurzbeschreibung . . . . :  ZUCKER 1KG                     

          Preis  . . . . . . . . . :  2.45                           

          Verfugbare Menge . . . . :  7685