mirror of
https://github.com/abapGit/abapGit.git
synced 2025-04-30 11:46:38 +08:00
Extend logic to detect BCP47 languages (#6986)
Co-authored-by: Lars Hvam <larshp@hotmail.com>
This commit is contained in:
parent
d8afb7bf42
commit
f9bd01021d
|
@ -112,6 +112,15 @@ CLASS zcl_abapgit_filename_logic DEFINITION
|
|||
RAISING
|
||||
zcx_abapgit_exception.
|
||||
|
||||
CLASS-METHODS get_lang_and_ext
|
||||
IMPORTING
|
||||
iv_filename TYPE string
|
||||
EXPORTING
|
||||
ev_lang TYPE laiso
|
||||
ev_ext TYPE string
|
||||
RAISING
|
||||
zcx_abapgit_exception.
|
||||
|
||||
ENDCLASS.
|
||||
|
||||
|
||||
|
@ -184,7 +193,7 @@ CLASS zcl_abapgit_filename_logic IMPLEMENTATION.
|
|||
|
||||
DATA lo_dot TYPE REF TO zcl_abapgit_dot_abapgit.
|
||||
|
||||
CLEAR: ev_lang, ev_ext.
|
||||
CLEAR: es_item, ev_lang, ev_ext.
|
||||
lo_dot = zcl_abapgit_dot_abapgit=>build_default( ).
|
||||
|
||||
file_to_object(
|
||||
|
@ -195,8 +204,12 @@ CLASS zcl_abapgit_filename_logic IMPLEMENTATION.
|
|||
IMPORTING
|
||||
es_item = es_item ).
|
||||
|
||||
FIND FIRST OCCURRENCE OF REGEX 'i18n\.([^.]{2})\.([^.]+)$' IN iv_filename
|
||||
SUBMATCHES ev_lang ev_ext ##SUBRC_OK.
|
||||
get_lang_and_ext(
|
||||
EXPORTING
|
||||
iv_filename = iv_filename
|
||||
IMPORTING
|
||||
ev_lang = ev_lang
|
||||
ev_ext = ev_ext ).
|
||||
|
||||
ENDMETHOD.
|
||||
|
||||
|
@ -358,4 +371,38 @@ CLASS zcl_abapgit_filename_logic IMPLEMENTATION.
|
|||
iv_ext = iv_ext ).
|
||||
|
||||
ENDMETHOD.
|
||||
|
||||
METHOD get_lang_and_ext.
|
||||
|
||||
DATA lt_filename_elements TYPE string_table.
|
||||
DATA lv_langu_bcp47 TYPE string.
|
||||
DATA lv_sap1 TYPE sy-langu.
|
||||
|
||||
SPLIT iv_filename AT '.' INTO TABLE lt_filename_elements.
|
||||
|
||||
READ TABLE lt_filename_elements INDEX lines( lt_filename_elements ) INTO ev_ext.
|
||||
IF sy-subrc <> 0.
|
||||
zcx_abapgit_exception=>raise( |Could not derive file extension of file { iv_filename }| ).
|
||||
ENDIF.
|
||||
|
||||
READ TABLE lt_filename_elements WITH KEY table_line = `i18n` TRANSPORTING NO FIELDS.
|
||||
IF sy-subrc = 0.
|
||||
READ TABLE lt_filename_elements INDEX ( sy-tabix + 1 ) INTO lv_langu_bcp47.
|
||||
IF sy-subrc = 0.
|
||||
lv_sap1 = zcl_abapgit_convert=>language_bcp47_to_sap1( lv_langu_bcp47 ).
|
||||
ev_lang = zcl_abapgit_convert=>language_sap1_to_sap2( lv_sap1 ). " actually it is to_upper( ISO-639 )
|
||||
|
||||
" to not break existing PO file implementations
|
||||
IF ev_ext = `po`.
|
||||
ev_lang = to_lower( ev_lang ).
|
||||
ENDIF.
|
||||
ENDIF.
|
||||
ENDIF.
|
||||
|
||||
IF ev_lang IS INITIAL.
|
||||
CLEAR ev_ext.
|
||||
ENDIF.
|
||||
|
||||
ENDMETHOD.
|
||||
|
||||
ENDCLASS.
|
||||
|
|
|
@ -451,7 +451,7 @@ CLASS ltcl_run_checks IMPLEMENTATION.
|
|||
exp = 'ZPROGRAM'
|
||||
act = ls_item-obj_name ).
|
||||
cl_abap_unit_assert=>assert_equals(
|
||||
exp = 'en'
|
||||
exp = 'EN'
|
||||
act = lv_lang ).
|
||||
cl_abap_unit_assert=>assert_equals(
|
||||
exp = 'properties'
|
||||
|
|
|
@ -54,7 +54,7 @@ CLASS ltcl_objects_files IMPLEMENTATION.
|
|||
APPEND INITIAL LINE TO lt_files ASSIGNING <ls_files>.
|
||||
<ls_files>-filename = 'zlf.prog.i18n.es.po'.
|
||||
APPEND INITIAL LINE TO lt_files ASSIGNING <ls_files>.
|
||||
<ls_files>-filename = 'zlf.prog.i18n.cz.other'.
|
||||
<ls_files>-filename = 'zlf.prog.i18n.cs.other'.
|
||||
|
||||
" object type and name are upper case
|
||||
ls_item-obj_type = 'PROG'.
|
||||
|
|
Loading…
Reference in New Issue
Block a user