diff --git a/src/objects/core/zcl_abapgit_filename_logic.clas.abap b/src/objects/core/zcl_abapgit_filename_logic.clas.abap index 533ee638b..3edf57042 100644 --- a/src/objects/core/zcl_abapgit_filename_logic.clas.abap +++ b/src/objects/core/zcl_abapgit_filename_logic.clas.abap @@ -318,15 +318,17 @@ CLASS zcl_abapgit_filename_logic IMPLEMENTATION. METHOD object_to_file. DATA lv_obj_name TYPE string. + DATA lv_obj_type TYPE string. DATA lv_nb_of_slash TYPE string. " Get escaped object name lv_obj_name = to_lower( name_escape( is_item-obj_name ) ). + lv_obj_type = to_lower( is_item-obj_type ). IF iv_extra IS INITIAL. - CONCATENATE lv_obj_name '.' is_item-obj_type INTO rv_filename. + CONCATENATE lv_obj_name '.' lv_obj_type INTO rv_filename. ELSE. - CONCATENATE lv_obj_name '.' is_item-obj_type '.' iv_extra INTO rv_filename. + CONCATENATE lv_obj_name '.' lv_obj_type '.' iv_extra INTO rv_filename. ENDIF. IF iv_ext IS NOT INITIAL. @@ -358,16 +360,25 @@ CLASS zcl_abapgit_filename_logic IMPLEMENTATION. REPLACE ALL OCCURRENCES OF '/' IN rv_filename WITH '#'. ENDIF. + IF iv_ext = 'properties'. + RETURN. + ENDIF. + TRANSLATE rv_filename TO LOWER CASE. ENDMETHOD. METHOD object_to_i18n_file. + DATA: lv_langu_sap1 TYPE sy-langu, + lv_langu_bcp47 TYPE string. + + lv_langu_sap1 = zcl_abapgit_convert=>language_sap2_to_sap1( to_upper( iv_lang ) ). + lv_langu_bcp47 = zcl_abapgit_convert=>language_sap1_to_bcp47( lv_langu_sap1 ). rv_filename = object_to_file( is_item = is_item - iv_extra = |i18n.{ iv_lang }| + iv_extra = |i18n.{ lv_langu_bcp47 }| iv_ext = iv_ext ). ENDMETHOD. diff --git a/src/objects/core/zcl_abapgit_filename_logic.clas.testclasses.abap b/src/objects/core/zcl_abapgit_filename_logic.clas.testclasses.abap index fa2ec80be..486c8410c 100644 --- a/src/objects/core/zcl_abapgit_filename_logic.clas.testclasses.abap +++ b/src/objects/core/zcl_abapgit_filename_logic.clas.testclasses.abap @@ -30,6 +30,7 @@ CLASS ltcl_run_checks DEFINITION FOR TESTING RISK LEVEL HARMLESS object_to_file FOR TESTING RAISING zcx_abapgit_exception, i18n_file_to_object FOR TESTING RAISING zcx_abapgit_exception, object_to_i18n_file FOR TESTING RAISING zcx_abapgit_exception, + object_to_i18n_file_bcp47 FOR TESTING RAISING zcx_abapgit_exception, file_to_object_package FOR TESTING RAISING zcx_abapgit_exception, object_to_file_package FOR TESTING RAISING zcx_abapgit_exception, i18n_file_to_object_is_initial FOR TESTING RAISING zcx_abapgit_exception. @@ -489,6 +490,26 @@ CLASS ltcl_run_checks IMPLEMENTATION. ENDMETHOD. + METHOD object_to_i18n_file_bcp47. + + DATA ls_item TYPE zif_abapgit_definitions=>ty_item. + DATA lv_filename TYPE string. + + ls_item-obj_type = 'INTF'. + ls_item-obj_name = 'ZIF_ABAP'. + + " Properties files + lv_filename = zcl_abapgit_filename_logic=>object_to_i18n_file( + is_item = ls_item + iv_lang = '6N' + iv_ext = 'properties' ). + + cl_abap_unit_assert=>assert_equals( + exp = 'zif_abap.intf.i18n.en-GB.properties' + act = lv_filename ). + + ENDMETHOD. + METHOD file_to_object_package. DATA ls_item TYPE zif_abapgit_definitions=>ty_item.