get_language_for_codepage

in src/zgoog_cl_content_repo_gcs.clas.abap [0:0]


  METHOD get_language_for_codepage.
    DATA lv_codepage TYPE cpcodepage.
    DATA lv_langs    TYPE string.
    DATA lv_lang     TYPE c LENGTH 1.

    CALL FUNCTION 'SCP_CODEPAGE_FOR_LANGUAGE'
      EXPORTING
        language    = sy-langu
      IMPORTING
        codepage    = lv_codepage
      EXCEPTIONS
        no_codepage = 1
        OTHERS      = 2.
    IF sy-subrc = 0 AND lv_codepage = '4110'.
      " Unicode fits all
      rv_language = sy-langu.
      EXIT.
    ENDIF.

    CALL FUNCTION 'SCP_ALLOWED_LANGUAGES'
      IMPORTING
        languages = lv_langs.

    CLEAR rv_language.
    WHILE lv_langs IS NOT INITIAL.
      lv_lang = lv_langs(1).
      CALL FUNCTION 'SCP_CODEPAGE_FOR_LANGUAGE'
        EXPORTING
          language    = lv_lang
        IMPORTING
          codepage    = lv_codepage
        EXCEPTIONS ##FM_SUBRC_OK
          no_codepage = 1
          OTHERS      = 2.
      IF sy-subrc = 0 AND iv_codepage = lv_codepage.
        rv_language = lv_lang.
        EXIT.
      ENDIF.
      SHIFT lv_langs LEFT BY 1 PLACES.
    ENDWHILE.