Multi language support

There are two ways to handle different languages in  GuiXT scripts: 
  • You maintain a distinct set of scripts for each language
  • You work with one set of scripts,  covering all languages within the script

Here we describe the 2nd possibility (supported by GuiXT with version 2002 Q1 and upwards).  

An advantage of the 2nd  approach is  that you can simplify your maintenance work: You can split each script into a language independent part in which you delete and rearrange fields, set defaults etc, and a language specific part in which you rename fields or add new texts.

A disadvantage is that you have to use the technical field names in the language independent part.

Furthermore, the users cannot work with the "Low speed R/3 connection", since the technical field names are not sent to the frontend in this case. This parameter is set in the logon screen in R/3:

If you use GuiXT with the R/3 web interface (GuiXT on ITS server 6.20), then this is not a problem, since the connection to the ITS server always contains the technical names. 

 

How to proceed:

In GuiXT profile you set the "No language key" option:

If you work with a guixt.ini file, the parameter is

NoLanguageKey   Yes

GuiXT now searches the scripts without a language key, e.g. instead of SAPMF05A.E0100.txt it reads the file SAPMF05A.0100.txt. In addition, in the screen elements you will now find the technical field name in the first column:

With a mouse click on a screen element you can copy the technical field name into the clipboard, and insert it into your script with Ctrl+V .

When you record an Input script, GuiXT will also generate the technical field names:

...
Screen SAPMF05A.0300
  SetCursor [RF05A-NEWKO]
  Set F[BSEG-WRBTR] "100"
  Set F[RF05A-NEWBS] "50"
  Set F[RF05A-NEWKO] "113101"
  Set F[COBL-GSBER] "0001"
  Enter

Screen SAPMF05A.0300
  SetCursor [BSEG-WRBTR]
  Set F[BSEG-WRBTR] "100"
  Enter "/11"

In your scripts  you can start with a language independent part, addressing all screen elements with their technical name.  Example:

// Language independent part
del F[RF05A-PARGB]
del F[BKPF-WWERT]
del F[BKPF-BUKRS]
del F[BKPF-KURSF]
del F[BKPF-WAERS]
del F[BKPF-BVORG]

pos G[LINE2] (6,0)

Default F[BKPF-BUKRS] "0001"
Default F[BKPF-WAERS] "EUR"


// English
if Q[Language=E]
  Text [Doc. Header text] "Text"
  Tip [Period] "Only if special period. Period is automatically taken from the posting date"
endif

// Deutsch
if Q[Language=D]
  Text [Belegkopftext] "Text"
  Tip [Periode] "Nur bei Sonderperioden nötig. Wird sonst automatisch aus Buchungsdatum ermittelt"
endif


// Francais
if Q[Language=F]
  Text [Texte d'en-tęte] "Texte"
  Tip [Période] "Seulement pour les périodes spéciales. La période est issue de la date comptable"
endif

The resulting screens in the 3 languages:

 

Within the language specific parts you can also work with the technical field names:

// English
if Q[Language=E]
  Text F[BKPF-BKTXT] "Text"
  Tip  F[BKPF-MONAT] "Only if special period. Period is automatically taken from the posting date"
endif

// Deutsch
if Q[Language=D]
  Text F[BKPF-BKTXT] "Text"
  Tip  F[BKPF-MONAT] "Nur bei Sonderperioden nötig. Wird sonst automatisch aus Buchungsdatum    ermittelt"
endif


// Francais
if Q[Language=F]
  Text F[BKPF-BKTXT] "Texte"
  Tip  F[BKPF-MONAT]"Seulement pour les périodes spéciales. La période est issue de la date comptable"
endif