[ABAP] Konvertierung einstelliges SAP-Sprachenkürzel <-> zweistellige ISO-Sprache

sy-langu -> ISO

* Variante 1 (CONVERSION_EXIT_ISOLA_OUTPUT)
DATA: lv_iso_lang TYPE laiso.

CALL FUNCTION 'CONVERSION_EXIT_ISOLA_OUTPUT'
  EXPORTING
    input  = sy-langu
  IMPORTING
    output = lv_iso_lang.

WRITE: / |{ sy-langu } -> { lv_iso_lang }|.

* Variante 2 (cl_i18n_languages)
DATA(lv_iso_lang) = cl_i18n_languages=>sap1_to_sap2( im_lang_sap1 = sy-langu ).
WRITE: / lv_iso_lang.

ISO -> sy-langu

* Variante 1 (CONVERSION_EXIT_ISOLA_INPUT)
DATA: lv_iso_lang TYPE laiso VALUE 'DE'.
DATA: lv_lang_r3 TYPE sy-langu.

CALL FUNCTION 'CONVERSION_EXIT_ISOLA_INPUT'
  EXPORTING
    input  = lv_iso_lang
  IMPORTING
    output = lv_lang_r3.

WRITE: / |{ lv_iso_lang } -> { lv_lang_r3 }|.

* Variante 2 (cl_i18n_languages)
DATA(lv_lang_r3) = cl_i18n_languages=>sap2_to_sap1( im_lang_sap2 = 'DE' ).
WRITE: / |{ lv_lang_r3 }|.

[ABAP] Monatsnamen ermitteln (sprachabhängig)

DATA: it_month_names TYPE STANDARD TABLE OF t247.
DATA: rc TYPE sy-subrc.

CALL FUNCTION 'MONTH_NAMES_GET'
  EXPORTING
    language              = sy-langu
  IMPORTING
    return_code           = rc
  TABLES
    month_names           = it_month_names
  EXCEPTIONS
    month_names_not_found = 1
    OTHERS                = 2.

IF sy-subrc NE 0.
  MESSAGE ID sy-msgid TYPE sy-msgty NUMBER sy-msgno WITH sy-msgv1 sy-msgv2 sy-msgv3 sy-msgv4.
ELSE.
  IF rc = 0.
    LOOP AT it_month_names INTO DATA(wa).
      WRITE: / wa-spras, wa-mnr, wa-ktx, wa-ltx.
    ENDLOOP.
  ENDIF.
ENDIF.