Skip to content

ABAP Keyword Documentation →  ABAP Programming Guidelines →  Robust ABAP →  Internationalization 

Text Environment

Other versions: 7.31 | 7.40 | 7.54

Background

The text environment is part of the runtime environment of an ABAP program and is made up of a language, a locale and a system code page. All programs in an internal session have a common text environment.

As a default, the text environment of an internal session is determined by the logon language and can be set programmatically by the statement SET LOCALE. The language of the current text environment is contained in the system field sy-langu.

Rule

If possible, do not switch the text environment within the code

Set the statement SET LOCALE in exceptional cases only, and reverse any text environment switches in good time.

Details

ABAP-coded services usually expect the text environment to be specified by the current user's logon language. The services are not designed to handle text environment switches of internal sessions within the coding.

If the text environment has to be switched for a specific service due to the following exceptions, this must be done only temporarily. This means that a switched text environment must be reset within the same program context to prevent unexpected behavior in other programs within the same internal session.

Exception

Switching the text environment within the code may be necessary in the following cases:

  • For processing texts that were not authored in the logon language, for example when sorting with SORT ... AS TEXT, or when updating characters with TRANSLATE or an equivalent predefined function
  • For accessing external files

Bad example

The following source code shows a text environment switch within a method, where the text environment is not reset before exiting the method. This poses the danger of continuing within the wrong text environment after returning from the method.

METHOD ...
   SET LOCALE LANGUAGE ...
   ...
ENDMETHOD.

Good example

The following source code shows a text environment switch within a method, where the text environment is reset to its original state before exiting the method.

METHOD ...
  DATA env_lang TYPE tcp0c-langu.
  GET LOCALE LANGUAGE env_lang.
  SET LOCALE LANGUAGE ...
  ...
  SET LOCALE LANGUAGE env_lang.
ENDMETHOD.