Language conversion sap2/sap1 (#7017)

Co-authored-by: abaplint[bot] <24845621+abaplint[bot]@users.noreply.github.com>
This commit is contained in:
Albert Mink 2024-08-20 15:13:28 +02:00 committed by GitHub
parent 0f74ad944f
commit d28dcaef29
No known key found for this signature in database
GPG Key ID: B5690EEEBB952194
2 changed files with 171 additions and 42 deletions

View File

@ -291,57 +291,23 @@ CLASS zcl_abapgit_convert IMPLEMENTATION.
METHOD language_sap1_to_sap2.
DATA lv_class TYPE string.
TRY.
SELECT SINGLE languageisocode FROM ('I_LANGUAGE')
INTO re_lang_sap2
WHERE language = im_lang_sap1.
IF sy-subrc <> 0.
RAISE no_assignment.
ENDIF.
CATCH cx_sy_dynamic_osql_error.
lv_class = 'CL_I18N_LANGUAGES'.
CALL METHOD (lv_class)=>sap1_to_sap2
EXPORTING
im_lang_sap1 = im_lang_sap1
RECEIVING
re_lang_sap2 = re_lang_sap2
EXCEPTIONS
no_assignment = 1
OTHERS = 2.
IF sy-subrc = 1.
RAISE no_assignment.
ENDIF.
re_lang_sap2 = lcl_bcp47_language_table=>sap1_to_sap2( im_lang_sap1 ).
CATCH zcx_abapgit_exception.
RAISE no_assignment.
ENDTRY.
ENDMETHOD.
METHOD language_sap2_to_sap1.
DATA lv_class TYPE string.
TRY.
SELECT SINGLE language FROM ('I_LANGUAGE')
INTO re_lang_sap1
WHERE languageisocode = im_lang_sap2.
IF sy-subrc <> 0.
RAISE no_assignment.
ENDIF.
CATCH cx_sy_dynamic_osql_error.
lv_class = 'CL_I18N_LANGUAGES'.
CALL METHOD (lv_class)=>sap2_to_sap1
EXPORTING
im_lang_sap2 = im_lang_sap2
RECEIVING
re_lang_sap1 = re_lang_sap1
EXCEPTIONS
no_assignment = 1
OTHERS = 2.
IF sy-subrc = 1.
RAISE no_assignment.
ENDIF.
re_lang_sap1 = lcl_bcp47_language_table=>sap2_to_sap1( im_lang_sap2 ).
CATCH zcx_abapgit_exception.
RAISE no_assignment.
ENDTRY.
ENDMETHOD.

View File

@ -121,11 +121,20 @@ CLASS lcl_bcp47_language_table DEFINITION CREATE PRIVATE.
PUBLIC SECTION.
TYPES: BEGIN OF ty_language_mapping,
sap1_code TYPE sy-langu,
sap2_code TYPE laiso,
bcp47_code TYPE string,
END OF ty_language_mapping,
ty_language_mappings TYPE STANDARD TABLE OF ty_language_mapping WITH DEFAULT KEY.
CLASS-DATA gv_language_mappings TYPE ty_language_mappings.
CLASS-METHODS:
sap1_to_sap2
IMPORTING im_sap1 TYPE sy-langu
RETURNING VALUE(re_sap2) TYPE laiso
RAISING zcx_abapgit_exception,
sap2_to_sap1
IMPORTING im_sap2 TYPE laiso
RETURNING VALUE(re_sap1) TYPE sy-langu
RAISING zcx_abapgit_exception,
sap1_to_bcp47
IMPORTING
im_sap1 TYPE sy-langu
@ -149,6 +158,7 @@ CLASS lcl_bcp47_language_table DEFINITION CREATE PRIVATE.
fill_language_mapping
IMPORTING
im_sap1 TYPE string
im_sap2 TYPE string
im_bcp47 TYPE string.
ENDCLASS.
@ -191,6 +201,37 @@ CLASS lcl_bcp47_language_table IMPLEMENTATION.
ENDIF.
ENDMETHOD.
METHOD sap1_to_sap2.
DATA lv_language_mapping TYPE ty_language_mapping.
IF gv_language_mappings IS INITIAL.
fill_language_mappings( ).
ENDIF.
READ TABLE gv_language_mappings WITH KEY sap1_code = im_sap1 INTO lv_language_mapping.
re_sap2 = lv_language_mapping-sap2_code.
IF re_sap2 IS INITIAL.
zcx_abapgit_exception=>raise( |Could not convert SAP1 language code { im_sap1 } to SAP2 language code.| ).
ENDIF.
ENDMETHOD.
METHOD sap2_to_sap1.
DATA lv_language_mapping TYPE ty_language_mapping.
IF gv_language_mappings IS INITIAL.
fill_language_mappings( ).
ENDIF.
READ TABLE gv_language_mappings WITH KEY sap2_code = im_sap2 INTO lv_language_mapping.
re_sap1 = lv_language_mapping-sap1_code.
IF re_sap1 IS INITIAL.
zcx_abapgit_exception=>raise( |Could not map SAP2 language code { im_sap2 } to SAP1 language code.| ).
ENDIF.
ENDMETHOD.
METHOD fill_language_mapping.
DATA lv_line TYPE ty_language_mapping.
DATA lv_sap1 TYPE sy-langu.
@ -202,6 +243,7 @@ CLASS lcl_bcp47_language_table IMPLEMENTATION.
ENDIF.
lv_line-bcp47_code = im_bcp47.
lv_line-sap2_code = im_sap2.
lv_line-sap1_code = lv_sap1.
APPEND lv_line TO gv_language_mappings.
@ -217,366 +259,487 @@ CLASS lcl_bcp47_language_table IMPLEMENTATION.
METHOD fill_language_mappings_1.
fill_language_mapping( im_sap1 = 'a'
im_sap2 = 'AF'
im_bcp47 = 'af' ).
fill_language_mapping( im_sap1 = 'BF51'
im_sap2 = 'SQ'
im_bcp47 = 'sq' ).
fill_language_mapping( im_sap1 = 'BA15'
im_sap2 = 'EU'
im_bcp47 = 'eu' ).
fill_language_mapping( im_sap1 = 'B8F3'
im_sap2 = 'BS'
im_bcp47 = 'bs' ).
fill_language_mapping( im_sap1 = 'W'
im_sap2 = 'BG'
im_bcp47 = 'bg' ).
fill_language_mapping( im_sap1 = 'c'
im_sap2 = 'CA'
im_bcp47 = 'ca' ).
fill_language_mapping( im_sap1 = '1'
im_sap2 = 'ZH'
im_bcp47 = 'zh' ).
fill_language_mapping( im_sap1 = '1'
im_sap2 = 'ZH'
im_bcp47 = 'zh-Hans' ).
fill_language_mapping( im_sap1 = 'B343'
im_sap2 = '3C'
im_bcp47 = 'zh-SG' ).
fill_language_mapping( im_sap1 = 'M'
im_sap2 = 'ZF'
im_bcp47 = 'zh-Hant' ).
fill_language_mapping( im_sap1 = '6'
im_sap2 = 'HR'
im_bcp47 = 'hr' ).
fill_language_mapping( im_sap1 = 'C'
im_sap2 = 'CS'
im_bcp47 = 'cs' ).
fill_language_mapping( im_sap1 = 'K'
im_sap2 = 'DA'
im_bcp47 = 'da' ).
fill_language_mapping( im_sap1 = 'N'
im_sap2 = 'NL'
im_bcp47 = 'nl' ).
fill_language_mapping( im_sap1 = 'N'
im_sap2 = 'NL'
im_bcp47 = 'nl-NL' ).
fill_language_mapping( im_sap1 = 'B284'
im_sap2 = '1D'
im_bcp47 = 'nl-BE' ).
fill_language_mapping( im_sap1 = 'E'
im_sap2 = 'EN'
im_bcp47 = 'en' ).
fill_language_mapping( im_sap1 = 'E'
im_sap2 = 'EN'
im_bcp47 = 'en-US' ).
fill_language_mapping( im_sap1 = 'B46E'
im_sap2 = '6N'
im_bcp47 = 'en-GB' ).
fill_language_mapping( im_sap1 = 'B285'
im_sap2 = '1E'
im_bcp47 = 'en-AU' ).
fill_language_mapping( im_sap1 = 'B2E5'
im_sap2 = '2E'
im_bcp47 = 'en-BZ' ).
fill_language_mapping( im_sap1 = 'B345'
im_sap2 = '3E'
im_bcp47 = 'en-CA' ).
fill_language_mapping( im_sap1 = 'B405'
im_sap2 = '5E'
im_bcp47 = 'en-HK' ).
fill_language_mapping( im_sap1 = 'B465'
im_sap2 = '6E'
im_bcp47 = 'en-IN' ).
fill_language_mapping( im_sap1 = 'B4C5'
im_sap2 = '7E'
im_bcp47 = 'en-ID' ).
fill_language_mapping( im_sap1 = 'B525'
im_sap2 = '8E'
im_bcp47 = 'en-IE' ).
fill_language_mapping( im_sap1 = 'B585'
im_sap2 = '9E'
im_bcp47 = 'en-JM' ).
fill_language_mapping( im_sap1 = 'B225'
im_sap2 = '0E'
im_bcp47 = 'en-MY' ).
fill_language_mapping( im_sap1 = 'B28E'
im_sap2 = '1N'
im_bcp47 = 'en-NZ' ).
fill_language_mapping( im_sap1 = 'B2EE'
im_sap2 = '2N'
im_bcp47 = 'en-PH' ).
fill_language_mapping( im_sap1 = 'B34E'
im_sap2 = '3N'
im_bcp47 = 'en-SG' ).
fill_language_mapping( im_sap1 = 'B3AE'
im_sap2 = '4N'
im_bcp47 = 'en-ZA' ).
fill_language_mapping( im_sap1 = 'B40E'
im_sap2 = '5N'
im_bcp47 = 'en-TT' ).
fill_language_mapping( im_sap1 = 'B4CE'
im_sap2 = '7N'
im_bcp47 = 'en-ZW' ).
fill_language_mapping( im_sap1 = '9'
im_sap2 = 'ET'
im_bcp47 = 'et' ).
fill_language_mapping( im_sap1 = 'U'
im_sap2 = 'FI'
im_bcp47 = 'fi' ).
fill_language_mapping( im_sap1 = 'F'
im_sap2 = 'FR'
im_bcp47 = 'fr' ).
fill_language_mapping( im_sap1 = 'F'
im_sap2 = 'FR'
im_bcp47 = 'fr-FR' ).
fill_language_mapping( im_sap1 = 'B286'
im_sap2 = '1F'
im_bcp47 = 'fr-BE' ).
fill_language_mapping( im_sap1 = 'B2E6'
im_sap2 = '2F'
im_bcp47 = 'fr-CM' ).
ENDMETHOD.
METHOD fill_language_mappings_2.
fill_language_mapping( im_sap1 = 'B346'
im_sap2 = '3F'
im_bcp47 = 'fr-CA' ).
fill_language_mapping( im_sap1 = 'B3A6'
im_sap2 = '4F'
im_bcp47 = 'fr-CG' ).
fill_language_mapping( im_sap1 = 'B406'
im_sap2 = '5F'
im_bcp47 = 'fr-CI' ).
fill_language_mapping( im_sap1 = 'B466'
im_sap2 = '6F'
im_bcp47 = 'fr-HT' ).
fill_language_mapping( im_sap1 = 'B4C6'
im_sap2 = '7F'
im_bcp47 = 'fr-LU' ).
fill_language_mapping( im_sap1 = 'B526'
im_sap2 = '8F'
im_bcp47 = 'fr-ML' ).
fill_language_mapping( im_sap1 = 'B586'
im_sap2 = '9F'
im_bcp47 = 'fr-MC' ).
fill_language_mapping( im_sap1 = 'B288'
im_sap2 = '1H'
im_bcp47 = 'fr-MA' ).
fill_language_mapping( im_sap1 = 'B2E8'
im_sap2 = '2H'
im_bcp47 = 'fr-RE' ).
fill_language_mapping( im_sap1 = 'B348'
im_sap2 = '3H'
im_bcp47 = 'fr-SN' ).
fill_language_mapping( im_sap1 = 'B3A8'
im_sap2 = '4H'
im_bcp47 = 'fr-CH' ).
fill_language_mapping( im_sap1 = 'BAC4'
im_sap2 = 'GD'
im_bcp47 = 'gd' ).
fill_language_mapping( im_sap1 = 'BACC'
im_sap2 = 'GL'
im_bcp47 = 'gl' ).
fill_language_mapping( im_sap1 = 'D'
im_sap2 = 'DE'
im_bcp47 = 'de' ).
fill_language_mapping( im_sap1 = 'D'
im_sap2 = 'DE'
im_bcp47 = 'de-DE' ).
fill_language_mapping( im_sap1 = 'B287'
im_sap2 = '1G'
im_bcp47 = 'de-AT' ).
fill_language_mapping( im_sap1 = 'B2E7'
im_sap2 = '2G'
im_bcp47 = 'de-LI' ).
fill_language_mapping( im_sap1 = 'B347'
im_sap2 = '3G'
im_bcp47 = 'de-LU' ).
fill_language_mapping( im_sap1 = 'B3A7'
im_sap2 = '4G'
im_bcp47 = 'de-CH' ).
fill_language_mapping( im_sap1 = 'G'
im_sap2 = 'EL'
im_bcp47 = 'el' ).
fill_language_mapping( im_sap1 = 'B'
im_sap2 = 'HE'
im_bcp47 = 'he' ).
fill_language_mapping( im_sap1 = 'H'
im_sap2 = 'HU'
im_bcp47 = 'hu' ).
fill_language_mapping( im_sap1 = 'b'
im_sap2 = 'IS'
im_bcp47 = 'is' ).
fill_language_mapping( im_sap1 = 'i'
im_sap2 = 'ID'
im_bcp47 = 'id' ).
fill_language_mapping( im_sap1 = 'BAC1'
im_sap2 = 'GA'
im_bcp47 = 'ga' ).
fill_language_mapping( im_sap1 = 'I'
im_sap2 = 'IT'
im_bcp47 = 'it' ).
fill_language_mapping( im_sap1 = 'I'
im_sap2 = 'IT'
im_bcp47 = 'it-IT' ).
fill_language_mapping( im_sap1 = 'B289'
im_sap2 = '1I'
im_bcp47 = 'it-CH' ).
fill_language_mapping( im_sap1 = 'J'
im_sap2 = 'JA'
im_bcp47 = 'ja' ).
fill_language_mapping( im_sap1 = '3'
im_sap2 = 'KO'
im_bcp47 = 'ko' ).
fill_language_mapping( im_sap1 = '3'
im_sap2 = 'KO'
im_bcp47 = 'ko-KR' ).
fill_language_mapping( im_sap1 = 'Y'
im_sap2 = 'LV'
im_bcp47 = 'lv' ).
fill_language_mapping( im_sap1 = 'X'
im_sap2 = 'LT'
im_bcp47 = 'lt' ).
fill_language_mapping( im_sap1 = '7'
im_sap2 = 'MS'
im_bcp47 = 'ms' ).
fill_language_mapping( im_sap1 = '7'
im_sap2 = 'MS'
im_bcp47 = 'ms-MY' ).
fill_language_mapping( im_sap1 = 'B28D'
im_sap2 = '1M'
im_bcp47 = 'ms-BN' ).
fill_language_mapping( im_sap1 = 'O'
im_sap2 = 'NO'
im_bcp47 = 'no' ).
fill_language_mapping( im_sap1 = 'L'
im_sap2 = 'PL'
im_bcp47 = 'pl' ).
fill_language_mapping( im_sap1 = 'P'
im_sap2 = 'PT'
im_bcp47 = 'pt' ).
fill_language_mapping( im_sap1 = 'P'
im_sap2 = 'PT'
im_bcp47 = 'pt-BR' ).
fill_language_mapping( im_sap1 = 'BEED'
im_sap2 = 'RM'
im_bcp47 = 'rm' ).
fill_language_mapping( im_sap1 = '4'
im_sap2 = 'RO'
im_bcp47 = 'ro' ).
fill_language_mapping( im_sap1 = '4'
im_sap2 = 'RO'
im_bcp47 = 'ro-RO' ).
fill_language_mapping( im_sap1 = 'R'
im_sap2 = 'RU'
im_bcp47 = 'ru-RU' ).
fill_language_mapping( im_sap1 = '0'
im_sap2 = 'SR'
im_bcp47 = 'sr' ).
fill_language_mapping( im_sap1 = '0'
im_sap2 = 'SR'
im_bcp47 = 'sr-Cyrl' ).
fill_language_mapping( im_sap1 = 'd'
im_sap2 = 'SH'
im_bcp47 = 'sr-Latn' ).
fill_language_mapping( im_sap1 = 'Q'
im_sap2 = 'SK'
im_bcp47 = 'sk' ).
fill_language_mapping( im_sap1 = '5'
im_sap2 = 'SL'
im_bcp47 = 'sl' ).
fill_language_mapping( im_sap1 = 'BF42'
im_sap2 = 'SB'
im_bcp47 = 'wen' ).
fill_language_mapping( im_sap1 = 'B9B3'
im_sap2 = 'DS'
im_bcp47 = 'dsb' ).
fill_language_mapping( im_sap1 = 'BB33'
im_sap2 = 'HS'
im_bcp47 = 'hsb' ).
fill_language_mapping( im_sap1 = 'S'
im_sap2 = 'ES'
im_bcp47 = 'es' ).
fill_language_mapping( im_sap1 = 'S'
im_sap2 = 'ES'
im_bcp47 = 'es-ES' ).
fill_language_mapping( im_sap1 = 'B293'
im_sap2 = '1S'
im_bcp47 = 'es-AR' ).
fill_language_mapping( im_sap1 = 'B2F3'
im_sap2 = '2S'
im_bcp47 = 'es-BO' ).
fill_language_mapping( im_sap1 = 'B353'
im_sap2 = '3S'
im_bcp47 = 'es-CL' ).
fill_language_mapping( im_sap1 = 'B233'
im_sap2 = '0S'
im_bcp47 = 'es-CO' ).
fill_language_mapping( im_sap1 = 'B3B3'
im_sap2 = '4S'
im_bcp47 = 'es-CR' ).
fill_language_mapping( im_sap1 = 'B413'
im_sap2 = '5S'
im_bcp47 = 'es-DO' ).
fill_language_mapping( im_sap1 = 'B473'
im_sap2 = '6S'
im_bcp47 = 'es-EC' ).
fill_language_mapping( im_sap1 = 'B4D3'
im_sap2 = '7S'
im_bcp47 = 'es-SV' ).
fill_language_mapping( im_sap1 = 'B533'
im_sap2 = '8S'
im_bcp47 = 'es-GT' ).
fill_language_mapping( im_sap1 = 'B593'
im_sap2 = '9S'
im_bcp47 = 'es-HN' ).
fill_language_mapping( im_sap1 = 'B298'
im_sap2 = '1X'
im_bcp47 = 'es-MX' ).
fill_language_mapping( im_sap1 = 'B2F8'
im_sap2 = '2X'
im_bcp47 = 'es-NI' ).
fill_language_mapping( im_sap1 = 'B358'
im_sap2 = '3X'
im_bcp47 = 'es-PA' ).
fill_language_mapping( im_sap1 = 'B3B8'
im_sap2 = '4X'
im_bcp47 = 'es-PY' ).
fill_language_mapping( im_sap1 = 'B418'
im_sap2 = '5X'
im_bcp47 = 'es-PE' ).
fill_language_mapping( im_sap1 = 'B478'
im_sap2 = '6X'
im_bcp47 = 'es-PR' ).
fill_language_mapping( im_sap1 = 'B4D8'
im_sap2 = '7X'
im_bcp47 = 'es-UY' ).
fill_language_mapping( im_sap1 = 'B538'
im_sap2 = '8X'
im_bcp47 = 'es-VE' ).
fill_language_mapping( im_sap1 = 'BF57'
im_sap2 = 'SW'
im_bcp47 = 'sw' ).
fill_language_mapping( im_sap1 = 'V'
im_sap2 = 'SV'
im_bcp47 = 'sv' ).
fill_language_mapping( im_sap1 = 'BFAC'
im_sap2 = 'TL'
im_bcp47 = 'tl' ).
fill_language_mapping( im_sap1 = '2'
im_sap2 = 'TH'
im_bcp47 = 'th' ).
fill_language_mapping( im_sap1 = 'T'
im_sap2 = 'TR'
im_bcp47 = 'tr' ).
fill_language_mapping( im_sap1 = '8'
im_sap2 = 'UK'
im_bcp47 = 'uk' ).
fill_language_mapping( im_sap1 = 'C069'
im_sap2 = 'VI'
im_bcp47 = 'vi' ).
fill_language_mapping( im_sap1 = 'C0C1'
im_sap2 = 'WA'
im_bcp47 = 'wa' ).
ENDMETHOD.
ENDCLASS.