Multilingual Application Issues

Visual LANSA Framework

Multilingual Application Issues

When building filters and command handlers for use in multilingual environments use exactly the same procedures as you would for any other Visual LANSA application.

The only difference between designing any multilingual Visual LANSA application and a Framework based Visual LANSA application is in the input of the multilingual Framework design details.

This input process mostly involves the captions used for the Framework, the applications, the business objects, the commands and any "Help About" details.

Specifying multilingual details for the Framework details is quite simple.  Assume that you have a Framework that was designed using language code ENG (English). You now want to translate the Framework details to language code FRA (French).

You would:

1.

Invoke the UF_DESGN (or equivalent) entry point for the Framework. Make sure that the language code specified is the language that you are interested in translating to (eg: FRA for French).

 

2.

Display the various Framework, application, business object and command property dialogs and simply overtype the displayed captions with the translated captions (initially you should do this for just a few things and verify that they work correctly (see step 3) before completing the translation job).

 

3.

Close down the Framework. The changed details will be saved. You should now find that if you execute the Framework with language code ENG you get English details displayed, if you execute the Framework with language code FRA you should get the French details displayed.

 

Technically, there are two things about the way translated strings are processed you may need to understand:

1.

The Framework definition file vf_sy001_System.xml (or equivalent) holds the translated strings for all languages. If you look in this file you may find XML like this example (which is the definition of the EXIT command):

   <MEMBER TYPE="COMMAND" CLASS="VF_FP009" ID="COMMAND_1" >

      <PROPERTY NAME="UBITMAPNAME" VALUE="VF_BM013"/>

      <PROPERTY NAME="UCAPTION" LANG="ENG" VALUE="Exit"/>

      <PROPERTY NAME="UICONNAME" VALUE="VF_IC035"/>

      <PROPERTY NAME="USEQUENCE" TYPE="N" VALUE="2"/>

   </MEMBER>

 

you can see the definition of the caption property:

      <PROPERTY NAME="UCAPTION" LANG="ENG" VALUE="Exit"/>

After translation using the methods previously described (into French and Italian, say) then they would now appear in the XML file as:

     <PROPERTY NAME="UCAPTION" LANG="ENG" VALUE="Exit"/>

     <PROPERTY NAME="UCAPTION" LANG="FRA" VALUE="Sorter"/>

     <PROPERTY NAME="UCAPTION" LANG="ITL" VALUE="Uscire"/>

 

 

2.

When language dependent properties from the Framework definition file vf_sy001_System.xml are being processed, the logic used to locate them goes like this:

  • Look for property in the current language
  • If not found, and current language is not English, try English
  • If not found, and current language is English, try "NAT" (National language)