mirror of
https://github.com/abapGit/abapGit.git
synced 2025-05-01 04:08:27 +08:00
I18N: LXE Translations (#4415)
* Issue 2424 https://github.com/abapGit/abapGit/issues/2424 * Issue 2424 https://github.com/abapGit/abapGit/issues/2424 * Update src/objects/zcl_abapgit_object_fugr.clas.abap Co-authored-by: abaplint[bot] <24845621+abaplint[bot]@users.noreply.github.com> * Fixing LINT issues * Fixing LINT issues * TABL, default ROWORCOLST on deserialize (#4430) (#4) * Fix for #4425 * Remove whitespace at end of line Co-authored-by: abaplint[bot] <24845621+abaplint[bot]@users.noreply.github.com> * Remove whitespace at end of line Co-authored-by: abaplint[bot] <24845621+abaplint[bot]@users.noreply.github.com> Co-authored-by: abaplint[bot] <24845621+abaplint[bot]@users.noreply.github.com> Co-authored-by: DerGuteWolf <DerGuteWolf@users.noreply.github.com> Co-authored-by: abaplint[bot] <24845621+abaplint[bot]@users.noreply.github.com> * Centralize LXE functionality * Fix FUGR LXE * delete issue reference comments * Delete issue reference comments * Remove Aliases for LXE types * Review Changes * Copy from #4452 Integrate changes from #4452 into #4415 Co-authored-by: abaplint[bot] <24845621+abaplint[bot]@users.noreply.github.com> Co-authored-by: Lars Hvam <larshp@hotmail.com> Co-authored-by: DerGuteWolf <DerGuteWolf@users.noreply.github.com> Co-authored-by: Sebastian Koitka <sebastian.koitka@dematic.com> Co-authored-by: Marc Bernard <marc@marcbernardtools.com> Co-authored-by: Marc Bernard <59966492+mbtools@users.noreply.github.com>
This commit is contained in:
parent
1eac7e1f89
commit
bcbc3d527d
|
@ -6,7 +6,8 @@ CLASS zcl_abapgit_serialize DEFINITION
|
||||||
|
|
||||||
METHODS constructor
|
METHODS constructor
|
||||||
IMPORTING
|
IMPORTING
|
||||||
!iv_serialize_master_lang_only TYPE abap_bool DEFAULT abap_false .
|
!iv_serialize_master_lang_only TYPE abap_bool DEFAULT abap_false
|
||||||
|
!it_translation_langs TYPE zif_abapgit_definitions=>ty_languages OPTIONAL.
|
||||||
METHODS on_end_of_task
|
METHODS on_end_of_task
|
||||||
IMPORTING
|
IMPORTING
|
||||||
!p_task TYPE clike .
|
!p_task TYPE clike .
|
||||||
|
@ -43,6 +44,7 @@ CLASS zcl_abapgit_serialize DEFINITION
|
||||||
DATA mi_log TYPE REF TO zif_abapgit_log .
|
DATA mi_log TYPE REF TO zif_abapgit_log .
|
||||||
DATA mv_group TYPE rzlli_apcl .
|
DATA mv_group TYPE rzlli_apcl .
|
||||||
DATA mv_serialize_master_lang_only TYPE abap_bool .
|
DATA mv_serialize_master_lang_only TYPE abap_bool .
|
||||||
|
DATA mt_translation_langs TYPE zif_abapgit_definitions=>ty_languages .
|
||||||
|
|
||||||
METHODS add_apack
|
METHODS add_apack
|
||||||
IMPORTING
|
IMPORTING
|
||||||
|
@ -105,7 +107,7 @@ ENDCLASS.
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
CLASS ZCL_ABAPGIT_SERIALIZE IMPLEMENTATION.
|
CLASS zcl_abapgit_serialize IMPLEMENTATION.
|
||||||
|
|
||||||
|
|
||||||
METHOD add_apack.
|
METHOD add_apack.
|
||||||
|
@ -224,6 +226,7 @@ CLASS ZCL_ABAPGIT_SERIALIZE IMPLEMENTATION.
|
||||||
|
|
||||||
mv_group = 'parallel_generators'.
|
mv_group = 'parallel_generators'.
|
||||||
mv_serialize_master_lang_only = iv_serialize_master_lang_only.
|
mv_serialize_master_lang_only = iv_serialize_master_lang_only.
|
||||||
|
mt_translation_langs = it_translation_langs.
|
||||||
|
|
||||||
ENDMETHOD.
|
ENDMETHOD.
|
||||||
|
|
||||||
|
@ -414,9 +417,10 @@ CLASS ZCL_ABAPGIT_SERIALIZE IMPLEMENTATION.
|
||||||
|
|
||||||
TRY.
|
TRY.
|
||||||
ls_file_item = zcl_abapgit_objects=>serialize(
|
ls_file_item = zcl_abapgit_objects=>serialize(
|
||||||
is_item = ls_file_item-item
|
is_item = ls_file_item-item
|
||||||
iv_serialize_master_lang_only = mv_serialize_master_lang_only
|
iv_serialize_master_lang_only = mv_serialize_master_lang_only
|
||||||
iv_language = iv_language ).
|
it_translation_langs = mt_translation_langs
|
||||||
|
iv_language = iv_language ).
|
||||||
|
|
||||||
add_to_return( is_file_item = ls_file_item
|
add_to_return( is_file_item = ls_file_item
|
||||||
iv_path = is_tadir-path ).
|
iv_path = is_tadir-path ).
|
||||||
|
|
312
src/objects/texts/zcl_abapgit_lxe_texts.clas.abap
Normal file
312
src/objects/texts/zcl_abapgit_lxe_texts.clas.abap
Normal file
|
@ -0,0 +1,312 @@
|
||||||
|
CLASS zcl_abapgit_lxe_texts DEFINITION
|
||||||
|
PUBLIC
|
||||||
|
FINAL
|
||||||
|
CREATE PUBLIC .
|
||||||
|
|
||||||
|
PUBLIC SECTION.
|
||||||
|
|
||||||
|
INTERFACES zif_abapgit_lxe_texts .
|
||||||
|
|
||||||
|
CLASS-METHODS get_translation_languages
|
||||||
|
IMPORTING
|
||||||
|
!iv_main_language TYPE spras
|
||||||
|
!it_i18n_languages TYPE zif_abapgit_definitions=>ty_languages
|
||||||
|
RETURNING
|
||||||
|
VALUE(rt_languages) TYPE zif_abapgit_definitions=>ty_languages .
|
||||||
|
CLASS-METHODS get_installed_languages
|
||||||
|
RETURNING
|
||||||
|
VALUE(rt_languages) TYPE zif_abapgit_definitions=>ty_languages .
|
||||||
|
CLASS-METHODS convert_lang_string_to_table
|
||||||
|
IMPORTING
|
||||||
|
!iv_langs TYPE string
|
||||||
|
!iv_skip_main_language TYPE spras
|
||||||
|
RETURNING
|
||||||
|
VALUE(rt_languages) TYPE zif_abapgit_definitions=>ty_languages
|
||||||
|
RAISING
|
||||||
|
zcx_abapgit_exception .
|
||||||
|
CLASS-METHODS convert_table_to_lang_string
|
||||||
|
IMPORTING
|
||||||
|
!it_languages TYPE zif_abapgit_definitions=>ty_languages
|
||||||
|
RETURNING
|
||||||
|
VALUE(rv_langs) TYPE string
|
||||||
|
RAISING
|
||||||
|
zcx_abapgit_exception .
|
||||||
|
PROTECTED SECTION.
|
||||||
|
PRIVATE SECTION.
|
||||||
|
|
||||||
|
METHODS
|
||||||
|
get_lang_iso4
|
||||||
|
IMPORTING
|
||||||
|
iv_src TYPE spras
|
||||||
|
RETURNING
|
||||||
|
VALUE(rv_iso4) TYPE lxeisolang .
|
||||||
|
METHODS
|
||||||
|
get_lxe_object_list
|
||||||
|
IMPORTING
|
||||||
|
iv_object_type TYPE trobjtype
|
||||||
|
iv_object_name TYPE sobj_name
|
||||||
|
RETURNING
|
||||||
|
VALUE(rt_obj_list) TYPE lxe_tt_colob .
|
||||||
|
|
||||||
|
ENDCLASS.
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
CLASS zcl_abapgit_lxe_texts IMPLEMENTATION.
|
||||||
|
|
||||||
|
|
||||||
|
METHOD convert_lang_string_to_table.
|
||||||
|
|
||||||
|
DATA:
|
||||||
|
lt_langs_str TYPE string_table,
|
||||||
|
lv_laiso TYPE laiso,
|
||||||
|
lv_langu TYPE spras.
|
||||||
|
|
||||||
|
FIELD-SYMBOLS:
|
||||||
|
<lv_str> LIKE LINE OF lt_langs_str,
|
||||||
|
<lv_lang> LIKE LINE OF rt_languages.
|
||||||
|
|
||||||
|
" Keep * as indicator for 'all installed languages'
|
||||||
|
IF iv_langs = '*'.
|
||||||
|
APPEND iv_langs TO rt_languages.
|
||||||
|
RETURN.
|
||||||
|
ENDIF.
|
||||||
|
|
||||||
|
" Convert string of 2-letter ISO languages into table of sy-langu codes
|
||||||
|
SPLIT iv_langs AT ',' INTO TABLE lt_langs_str.
|
||||||
|
|
||||||
|
LOOP AT lt_langs_str ASSIGNING <lv_str>.
|
||||||
|
lv_laiso = condense( to_upper( <lv_str> ) ).
|
||||||
|
|
||||||
|
cl_i18n_languages=>sap2_to_sap1(
|
||||||
|
EXPORTING
|
||||||
|
im_lang_sap2 = lv_laiso
|
||||||
|
RECEIVING
|
||||||
|
re_lang_sap1 = lv_langu
|
||||||
|
EXCEPTIONS
|
||||||
|
no_assignment = 1
|
||||||
|
no_representation = 2
|
||||||
|
OTHERS = 3 ).
|
||||||
|
IF sy-subrc <> 0.
|
||||||
|
zcx_abapgit_exception=>raise( |Unknown language code { <lv_str> }| ).
|
||||||
|
ENDIF.
|
||||||
|
|
||||||
|
APPEND INITIAL LINE TO rt_languages ASSIGNING <lv_lang>.
|
||||||
|
<lv_lang> = lv_langu.
|
||||||
|
ENDLOOP.
|
||||||
|
|
||||||
|
DELETE rt_languages WHERE table_line = iv_skip_main_language.
|
||||||
|
|
||||||
|
SORT rt_languages.
|
||||||
|
DELETE ADJACENT DUPLICATES FROM rt_languages.
|
||||||
|
|
||||||
|
ENDMETHOD.
|
||||||
|
|
||||||
|
|
||||||
|
METHOD convert_table_to_lang_string.
|
||||||
|
|
||||||
|
DATA:
|
||||||
|
lt_langs_str TYPE string_table,
|
||||||
|
lv_laiso TYPE laiso.
|
||||||
|
|
||||||
|
FIELD-SYMBOLS:
|
||||||
|
<lv_langu> LIKE LINE OF it_languages,
|
||||||
|
<lv_str> TYPE string.
|
||||||
|
|
||||||
|
" Convert table of sy-langu codes into string of 2-letter ISO languages
|
||||||
|
LOOP AT it_languages ASSIGNING <lv_langu>.
|
||||||
|
" Keep * as indicator for 'all installed languages'
|
||||||
|
IF <lv_langu> = '*'.
|
||||||
|
APPEND '*' TO lt_langs_str.
|
||||||
|
EXIT.
|
||||||
|
ENDIF.
|
||||||
|
|
||||||
|
cl_i18n_languages=>sap1_to_sap2(
|
||||||
|
EXPORTING
|
||||||
|
im_lang_sap1 = <lv_langu>
|
||||||
|
RECEIVING
|
||||||
|
re_lang_sap2 = lv_laiso
|
||||||
|
EXCEPTIONS
|
||||||
|
no_assignment = 1
|
||||||
|
OTHERS = 2 ).
|
||||||
|
IF sy-subrc <> 0.
|
||||||
|
zcx_abapgit_exception=>raise( |Unknown language code { <lv_langu> }| ).
|
||||||
|
ENDIF.
|
||||||
|
|
||||||
|
APPEND INITIAL LINE TO lt_langs_str ASSIGNING <lv_str>.
|
||||||
|
<lv_str> = lv_laiso.
|
||||||
|
ENDLOOP.
|
||||||
|
|
||||||
|
CONCATENATE LINES OF lt_langs_str INTO rv_langs SEPARATED BY ','.
|
||||||
|
|
||||||
|
ENDMETHOD.
|
||||||
|
|
||||||
|
|
||||||
|
METHOD get_installed_languages.
|
||||||
|
|
||||||
|
DATA:
|
||||||
|
lv_index TYPE i,
|
||||||
|
lv_installed_languages TYPE string.
|
||||||
|
|
||||||
|
CALL FUNCTION 'SYSTEM_INSTALLED_LANGUAGES'
|
||||||
|
IMPORTING
|
||||||
|
languages = lv_installed_languages
|
||||||
|
EXCEPTIONS
|
||||||
|
sapgparam_error = 1 " Error requesting profile parameter
|
||||||
|
OTHERS = 2.
|
||||||
|
IF sy-subrc <> 0.
|
||||||
|
ENDIF.
|
||||||
|
|
||||||
|
DO strlen( lv_installed_languages ) TIMES.
|
||||||
|
lv_index = sy-index - 1.
|
||||||
|
APPEND lv_installed_languages+lv_index(1) TO rt_languages.
|
||||||
|
ENDDO.
|
||||||
|
|
||||||
|
ENDMETHOD.
|
||||||
|
|
||||||
|
|
||||||
|
METHOD get_lang_iso4.
|
||||||
|
|
||||||
|
CALL FUNCTION 'LXE_T002_CONVERT_2_TO_4'
|
||||||
|
EXPORTING
|
||||||
|
old_r3_lang = iv_src
|
||||||
|
IMPORTING
|
||||||
|
new_lang = rv_iso4.
|
||||||
|
|
||||||
|
ENDMETHOD.
|
||||||
|
|
||||||
|
|
||||||
|
METHOD get_lxe_object_list.
|
||||||
|
|
||||||
|
DATA lv_object_name TYPE trobj_name.
|
||||||
|
|
||||||
|
lv_object_name = iv_object_name.
|
||||||
|
|
||||||
|
CALL FUNCTION 'LXE_OBJ_EXPAND_TRANSPORT_OBJ'
|
||||||
|
EXPORTING
|
||||||
|
pgmid = 'R3TR'
|
||||||
|
object = iv_object_type
|
||||||
|
obj_name = lv_object_name
|
||||||
|
TABLES
|
||||||
|
ex_colob = rt_obj_list.
|
||||||
|
|
||||||
|
ENDMETHOD.
|
||||||
|
|
||||||
|
|
||||||
|
METHOD get_translation_languages.
|
||||||
|
|
||||||
|
" Returns a list of translation languages for serialization
|
||||||
|
" If the setting is initial, no translations shall be serialized
|
||||||
|
" If the setting is `*`, all all installed system languages shall be serialized
|
||||||
|
" Else, the setting shall contain all languages to be serialized
|
||||||
|
|
||||||
|
IF it_i18n_languages IS NOT INITIAL.
|
||||||
|
READ TABLE it_i18n_languages TRANSPORTING NO FIELDS WITH KEY table_line = '*'.
|
||||||
|
IF sy-subrc = 0.
|
||||||
|
rt_languages = get_installed_languages( ).
|
||||||
|
ELSE.
|
||||||
|
rt_languages = it_i18n_languages.
|
||||||
|
ENDIF.
|
||||||
|
ENDIF.
|
||||||
|
|
||||||
|
" Remove main language from translation languages
|
||||||
|
DELETE rt_languages WHERE table_line = iv_main_language.
|
||||||
|
|
||||||
|
ENDMETHOD.
|
||||||
|
|
||||||
|
|
||||||
|
METHOD zif_abapgit_lxe_texts~deserialize.
|
||||||
|
|
||||||
|
DATA:
|
||||||
|
lt_lxe_texts TYPE zif_abapgit_lxe_texts=>ty_tlxe_i18n,
|
||||||
|
ls_lxe_item TYPE zif_abapgit_lxe_texts=>ty_lxe_i18n,
|
||||||
|
lt_text_pairs_tmp LIKE ls_lxe_item-text_pairs.
|
||||||
|
|
||||||
|
ii_xml->read( EXPORTING iv_name = iv_lxe_text_name
|
||||||
|
CHANGING cg_data = lt_lxe_texts ).
|
||||||
|
|
||||||
|
LOOP AT lt_lxe_texts INTO ls_lxe_item.
|
||||||
|
" Call Read first for buffer prefill
|
||||||
|
CLEAR: lt_text_pairs_tmp.
|
||||||
|
CALL FUNCTION 'LXE_OBJ_TEXT_PAIR_READ'
|
||||||
|
EXPORTING
|
||||||
|
s_lang = ls_lxe_item-source_lang
|
||||||
|
t_lang = ls_lxe_item-target_lang
|
||||||
|
custmnr = ls_lxe_item-custmnr
|
||||||
|
objtype = ls_lxe_item-objtype
|
||||||
|
objname = ls_lxe_item-objname
|
||||||
|
read_only = abap_false
|
||||||
|
TABLES
|
||||||
|
lt_pcx_s1 = lt_text_pairs_tmp.
|
||||||
|
|
||||||
|
"Call actual Write FM
|
||||||
|
CALL FUNCTION 'LXE_OBJ_TEXT_PAIR_WRITE'
|
||||||
|
EXPORTING
|
||||||
|
s_lang = ls_lxe_item-source_lang
|
||||||
|
t_lang = ls_lxe_item-target_lang
|
||||||
|
custmnr = ls_lxe_item-custmnr
|
||||||
|
objtype = ls_lxe_item-objtype
|
||||||
|
objname = ls_lxe_item-objname
|
||||||
|
TABLES
|
||||||
|
lt_pcx_s1 = ls_lxe_item-text_pairs.
|
||||||
|
ENDLOOP.
|
||||||
|
|
||||||
|
ENDMETHOD.
|
||||||
|
|
||||||
|
|
||||||
|
METHOD zif_abapgit_lxe_texts~serialize.
|
||||||
|
|
||||||
|
DATA:
|
||||||
|
lt_obj_list TYPE lxe_tt_colob,
|
||||||
|
lv_main_lang TYPE lxeisolang,
|
||||||
|
lt_languages TYPE zif_abapgit_definitions=>ty_languages,
|
||||||
|
lt_lxe_texts TYPE zif_abapgit_lxe_texts=>ty_tlxe_i18n,
|
||||||
|
ls_lxe_text_item TYPE zif_abapgit_lxe_texts=>ty_lxe_i18n.
|
||||||
|
|
||||||
|
FIELD-SYMBOLS:
|
||||||
|
<lv_language> TYPE langu,
|
||||||
|
<lv_lxe_object> TYPE lxe_colob.
|
||||||
|
|
||||||
|
lt_obj_list = get_lxe_object_list(
|
||||||
|
iv_object_name = iv_object_name
|
||||||
|
iv_object_type = iv_object_type ).
|
||||||
|
|
||||||
|
" Get list of languages that need to be serialized (already resolves * and installed languages)
|
||||||
|
lv_main_lang = get_lang_iso4( ii_xml->i18n_params( )-main_language ).
|
||||||
|
lt_languages = ii_xml->i18n_params( )-translation_languages.
|
||||||
|
|
||||||
|
LOOP AT lt_obj_list ASSIGNING <lv_lxe_object>.
|
||||||
|
CLEAR ls_lxe_text_item.
|
||||||
|
ls_lxe_text_item-custmnr = <lv_lxe_object>-custmnr.
|
||||||
|
ls_lxe_text_item-objtype = <lv_lxe_object>-objtype.
|
||||||
|
ls_lxe_text_item-objname = <lv_lxe_object>-objname.
|
||||||
|
|
||||||
|
LOOP AT lt_languages ASSIGNING <lv_language>.
|
||||||
|
ls_lxe_text_item-source_lang = lv_main_lang.
|
||||||
|
ls_lxe_text_item-target_lang = get_lang_iso4( <lv_language> ).
|
||||||
|
IF ls_lxe_text_item-source_lang = ls_lxe_text_item-target_lang.
|
||||||
|
CONTINUE. " if source = target -> skip
|
||||||
|
ENDIF.
|
||||||
|
|
||||||
|
CLEAR ls_lxe_text_item-text_pairs.
|
||||||
|
CALL FUNCTION 'LXE_OBJ_TEXT_PAIR_READ'
|
||||||
|
EXPORTING
|
||||||
|
s_lang = ls_lxe_text_item-source_lang
|
||||||
|
t_lang = ls_lxe_text_item-target_lang
|
||||||
|
custmnr = ls_lxe_text_item-custmnr
|
||||||
|
objtype = ls_lxe_text_item-objtype
|
||||||
|
objname = ls_lxe_text_item-objname
|
||||||
|
TABLES
|
||||||
|
lt_pcx_s1 = ls_lxe_text_item-text_pairs.
|
||||||
|
|
||||||
|
IF ls_lxe_text_item-text_pairs IS NOT INITIAL.
|
||||||
|
APPEND ls_lxe_text_item TO lt_lxe_texts.
|
||||||
|
ENDIF.
|
||||||
|
ENDLOOP.
|
||||||
|
ENDLOOP.
|
||||||
|
|
||||||
|
ii_xml->add( iv_name = iv_lxe_text_name
|
||||||
|
ig_data = lt_lxe_texts ).
|
||||||
|
|
||||||
|
ENDMETHOD.
|
||||||
|
ENDCLASS.
|
|
@ -0,0 +1,98 @@
|
||||||
|
CLASS ltcl_lxe_texts DEFINITION FOR TESTING DURATION SHORT RISK LEVEL HARMLESS.
|
||||||
|
|
||||||
|
PRIVATE SECTION.
|
||||||
|
METHODS:
|
||||||
|
lang_string_to_table FOR TESTING,
|
||||||
|
table_to_lang_string FOR TESTING.
|
||||||
|
|
||||||
|
ENDCLASS.
|
||||||
|
|
||||||
|
CLASS ltcl_lxe_texts IMPLEMENTATION.
|
||||||
|
|
||||||
|
METHOD lang_string_to_table.
|
||||||
|
|
||||||
|
DATA lv_langu TYPE string.
|
||||||
|
DATA lt_act TYPE zif_abapgit_definitions=>ty_languages.
|
||||||
|
DATA lt_exp TYPE zif_abapgit_definitions=>ty_languages.
|
||||||
|
|
||||||
|
TRY.
|
||||||
|
lt_act = zcl_abapgit_lxe_texts=>convert_lang_string_to_table(
|
||||||
|
iv_langs = 'en , de, es'
|
||||||
|
iv_skip_main_language = 'E' ).
|
||||||
|
|
||||||
|
APPEND 'D' TO lt_exp.
|
||||||
|
APPEND 'S' TO lt_exp.
|
||||||
|
|
||||||
|
cl_abap_unit_assert=>assert_equals(
|
||||||
|
act = lt_act
|
||||||
|
exp = lt_exp ).
|
||||||
|
CATCH zcx_abapgit_exception.
|
||||||
|
cl_abap_unit_assert=>fail( ).
|
||||||
|
ENDTRY.
|
||||||
|
|
||||||
|
TRY.
|
||||||
|
lt_act = zcl_abapgit_lxe_texts=>convert_lang_string_to_table(
|
||||||
|
iv_langs = 'en , DE, es'
|
||||||
|
iv_skip_main_language = 'E' ).
|
||||||
|
|
||||||
|
cl_abap_unit_assert=>assert_equals(
|
||||||
|
act = lt_act
|
||||||
|
exp = lt_exp ).
|
||||||
|
CATCH zcx_abapgit_exception.
|
||||||
|
cl_abap_unit_assert=>fail( ).
|
||||||
|
ENDTRY.
|
||||||
|
|
||||||
|
TRY.
|
||||||
|
lt_act = zcl_abapgit_lxe_texts=>convert_lang_string_to_table(
|
||||||
|
iv_langs = '*'
|
||||||
|
iv_skip_main_language = 'E' ).
|
||||||
|
|
||||||
|
CLEAR lt_exp.
|
||||||
|
APPEND '*' TO lt_exp.
|
||||||
|
|
||||||
|
cl_abap_unit_assert=>assert_equals(
|
||||||
|
act = lt_act
|
||||||
|
exp = lt_exp ).
|
||||||
|
CATCH zcx_abapgit_exception.
|
||||||
|
cl_abap_unit_assert=>fail( ).
|
||||||
|
ENDTRY.
|
||||||
|
|
||||||
|
ENDMETHOD.
|
||||||
|
|
||||||
|
METHOD table_to_lang_string.
|
||||||
|
|
||||||
|
DATA lt_langu TYPE zif_abapgit_definitions=>ty_languages.
|
||||||
|
DATA lv_act TYPE string.
|
||||||
|
DATA lv_exp TYPE string.
|
||||||
|
|
||||||
|
TRY.
|
||||||
|
APPEND 'D' TO lt_langu.
|
||||||
|
APPEND 'S' TO lt_langu.
|
||||||
|
|
||||||
|
lv_act = zcl_abapgit_lxe_texts=>convert_table_to_lang_string( lt_langu ).
|
||||||
|
lv_exp = 'DE,ES'.
|
||||||
|
|
||||||
|
cl_abap_unit_assert=>assert_equals(
|
||||||
|
act = lv_act
|
||||||
|
exp = lv_exp ).
|
||||||
|
CATCH zcx_abapgit_exception.
|
||||||
|
cl_abap_unit_assert=>fail( ).
|
||||||
|
ENDTRY.
|
||||||
|
|
||||||
|
TRY.
|
||||||
|
CLEAR lt_langu.
|
||||||
|
APPEND '*' TO lt_langu.
|
||||||
|
|
||||||
|
lv_act = zcl_abapgit_lxe_texts=>convert_table_to_lang_string( lt_langu ).
|
||||||
|
lv_exp = '*'.
|
||||||
|
|
||||||
|
cl_abap_unit_assert=>assert_equals(
|
||||||
|
act = lv_act
|
||||||
|
exp = lv_exp ).
|
||||||
|
CATCH zcx_abapgit_exception.
|
||||||
|
cl_abap_unit_assert=>fail( ).
|
||||||
|
ENDTRY.
|
||||||
|
|
||||||
|
ENDMETHOD.
|
||||||
|
|
||||||
|
ENDCLASS.
|
17
src/objects/texts/zcl_abapgit_lxe_texts.clas.xml
Normal file
17
src/objects/texts/zcl_abapgit_lxe_texts.clas.xml
Normal file
|
@ -0,0 +1,17 @@
|
||||||
|
<?xml version="1.0" encoding="utf-8"?>
|
||||||
|
<abapGit version="v1.0.0" serializer="LCL_OBJECT_CLAS" serializer_version="v1.0.0">
|
||||||
|
<asx:abap xmlns:asx="http://www.sap.com/abapxml" version="1.0">
|
||||||
|
<asx:values>
|
||||||
|
<VSEOCLASS>
|
||||||
|
<CLSNAME>ZCL_ABAPGIT_LXE_TEXTS</CLSNAME>
|
||||||
|
<LANGU>E</LANGU>
|
||||||
|
<DESCRIPT>abapGit - LXE Texts</DESCRIPT>
|
||||||
|
<STATE>1</STATE>
|
||||||
|
<CLSCCINCL>X</CLSCCINCL>
|
||||||
|
<FIXPT>X</FIXPT>
|
||||||
|
<UNICODE>X</UNICODE>
|
||||||
|
<WITH_UNIT_TESTS>X</WITH_UNIT_TESTS>
|
||||||
|
</VSEOCLASS>
|
||||||
|
</asx:values>
|
||||||
|
</asx:abap>
|
||||||
|
</abapGit>
|
33
src/objects/texts/zif_abapgit_lxe_texts.intf.abap
Normal file
33
src/objects/texts/zif_abapgit_lxe_texts.intf.abap
Normal file
|
@ -0,0 +1,33 @@
|
||||||
|
INTERFACE zif_abapgit_lxe_texts
|
||||||
|
PUBLIC .
|
||||||
|
|
||||||
|
|
||||||
|
TYPES:
|
||||||
|
BEGIN OF ty_lxe_i18n,
|
||||||
|
source_lang TYPE lxeisolang,
|
||||||
|
target_lang TYPE lxeisolang,
|
||||||
|
custmnr TYPE lxecustmnr,
|
||||||
|
objtype TYPE trobjtype,
|
||||||
|
objname TYPE lxeobjname,
|
||||||
|
text_pairs TYPE STANDARD TABLE OF lxe_pcx_s1 WITH DEFAULT KEY,
|
||||||
|
END OF ty_lxe_i18n .
|
||||||
|
TYPES:
|
||||||
|
ty_tlxe_i18n TYPE STANDARD TABLE OF ty_lxe_i18n WITH DEFAULT KEY .
|
||||||
|
|
||||||
|
METHODS serialize
|
||||||
|
IMPORTING
|
||||||
|
!iv_lxe_text_name TYPE string DEFAULT 'LXE_TEXTS'
|
||||||
|
!iv_object_type TYPE trobjtype
|
||||||
|
!iv_object_name TYPE sobj_name
|
||||||
|
!ii_xml TYPE REF TO zif_abapgit_xml_output
|
||||||
|
RAISING
|
||||||
|
zcx_abapgit_exception .
|
||||||
|
METHODS deserialize
|
||||||
|
IMPORTING
|
||||||
|
!iv_lxe_text_name TYPE string DEFAULT 'LXE_TEXTS'
|
||||||
|
!iv_object_type TYPE trobjtype OPTIONAL
|
||||||
|
!iv_object_name TYPE sobj_name OPTIONAL
|
||||||
|
!ii_xml TYPE REF TO zif_abapgit_xml_input
|
||||||
|
RAISING
|
||||||
|
zcx_abapgit_exception .
|
||||||
|
ENDINTERFACE.
|
15
src/objects/texts/zif_abapgit_lxe_texts.intf.xml
Normal file
15
src/objects/texts/zif_abapgit_lxe_texts.intf.xml
Normal file
|
@ -0,0 +1,15 @@
|
||||||
|
<?xml version="1.0" encoding="utf-8"?>
|
||||||
|
<abapGit version="v1.0.0" serializer="LCL_OBJECT_INTF" serializer_version="v1.0.0">
|
||||||
|
<asx:abap xmlns:asx="http://www.sap.com/abapxml" version="1.0">
|
||||||
|
<asx:values>
|
||||||
|
<VSEOINTERF>
|
||||||
|
<CLSNAME>ZIF_ABAPGIT_LXE_TEXTS</CLSNAME>
|
||||||
|
<LANGU>E</LANGU>
|
||||||
|
<DESCRIPT>abapGit - LXE Texts</DESCRIPT>
|
||||||
|
<EXPOSURE>2</EXPOSURE>
|
||||||
|
<STATE>1</STATE>
|
||||||
|
<UNICODE>X</UNICODE>
|
||||||
|
</VSEOINTERF>
|
||||||
|
</asx:values>
|
||||||
|
</asx:abap>
|
||||||
|
</abapGit>
|
|
@ -1072,6 +1072,8 @@ CLASS zcl_abapgit_object_fugr IMPLEMENTATION.
|
||||||
deserialize_texts( iv_prog_name = lv_program_name
|
deserialize_texts( iv_prog_name = lv_program_name
|
||||||
ii_xml = io_xml ).
|
ii_xml = io_xml ).
|
||||||
|
|
||||||
|
deserialize_lxe_texts( io_xml ).
|
||||||
|
|
||||||
io_xml->read( EXPORTING iv_name = 'DYNPROS'
|
io_xml->read( EXPORTING iv_name = 'DYNPROS'
|
||||||
CHANGING cg_data = lt_dynpros ).
|
CHANGING cg_data = lt_dynpros ).
|
||||||
deserialize_dynpros( lt_dynpros ).
|
deserialize_dynpros( lt_dynpros ).
|
||||||
|
@ -1179,8 +1181,14 @@ CLASS zcl_abapgit_object_fugr IMPLEMENTATION.
|
||||||
lv_program_name = main_name( ).
|
lv_program_name = main_name( ).
|
||||||
ls_progdir = read_progdir( lv_program_name ).
|
ls_progdir = read_progdir( lv_program_name ).
|
||||||
|
|
||||||
serialize_texts( iv_prog_name = lv_program_name
|
IF io_xml->i18n_params( )-translation_languages IS INITIAL.
|
||||||
ii_xml = io_xml ).
|
" Old I18N option
|
||||||
|
serialize_texts( iv_prog_name = lv_program_name
|
||||||
|
ii_xml = io_xml ).
|
||||||
|
ELSE.
|
||||||
|
" New LXE option
|
||||||
|
serialize_lxe_texts( io_xml ).
|
||||||
|
ENDIF.
|
||||||
|
|
||||||
IF ls_progdir-subc = 'F'.
|
IF ls_progdir-subc = 'F'.
|
||||||
lt_dynpros = serialize_dynpros( lv_program_name ).
|
lt_dynpros = serialize_dynpros( lv_program_name ).
|
||||||
|
|
|
@ -205,6 +205,7 @@ CLASS zcl_abapgit_object_prog IMPLEMENTATION.
|
||||||
|
|
||||||
" Texts deserializing (translations)
|
" Texts deserializing (translations)
|
||||||
deserialize_texts( io_xml ).
|
deserialize_texts( io_xml ).
|
||||||
|
deserialize_lxe_texts( io_xml ).
|
||||||
|
|
||||||
deserialize_longtexts( io_xml ).
|
deserialize_longtexts( io_xml ).
|
||||||
|
|
||||||
|
@ -278,7 +279,13 @@ CLASS zcl_abapgit_object_prog IMPLEMENTATION.
|
||||||
io_files = mo_files ).
|
io_files = mo_files ).
|
||||||
|
|
||||||
" Texts serializing (translations)
|
" Texts serializing (translations)
|
||||||
serialize_texts( io_xml ).
|
IF io_xml->i18n_params( )-translation_languages IS INITIAL.
|
||||||
|
" Old I18N option
|
||||||
|
serialize_texts( io_xml ).
|
||||||
|
ELSE.
|
||||||
|
" New LXE option
|
||||||
|
serialize_lxe_texts( io_xml ).
|
||||||
|
ENDIF.
|
||||||
|
|
||||||
serialize_longtexts( ii_xml = io_xml
|
serialize_longtexts( ii_xml = io_xml
|
||||||
iv_longtext_id = c_longtext_id_prog ).
|
iv_longtext_id = c_longtext_id_prog ).
|
||||||
|
|
|
@ -84,6 +84,16 @@ CLASS zcl_abapgit_objects_super DEFINITION PUBLIC ABSTRACT.
|
||||||
VALUE(iv_no_ask_delete_append) TYPE abap_bool DEFAULT abap_false
|
VALUE(iv_no_ask_delete_append) TYPE abap_bool DEFAULT abap_false
|
||||||
RAISING
|
RAISING
|
||||||
zcx_abapgit_exception .
|
zcx_abapgit_exception .
|
||||||
|
METHODS serialize_lxe_texts
|
||||||
|
IMPORTING
|
||||||
|
!ii_xml TYPE REF TO zif_abapgit_xml_output
|
||||||
|
RAISING
|
||||||
|
zcx_abapgit_exception .
|
||||||
|
METHODS deserialize_lxe_texts
|
||||||
|
IMPORTING
|
||||||
|
!ii_xml TYPE REF TO zif_abapgit_xml_input
|
||||||
|
RAISING
|
||||||
|
zcx_abapgit_exception .
|
||||||
PRIVATE SECTION.
|
PRIVATE SECTION.
|
||||||
ENDCLASS.
|
ENDCLASS.
|
||||||
|
|
||||||
|
@ -204,6 +214,16 @@ CLASS zcl_abapgit_objects_super IMPLEMENTATION.
|
||||||
ENDMETHOD.
|
ENDMETHOD.
|
||||||
|
|
||||||
|
|
||||||
|
METHOD deserialize_lxe_texts.
|
||||||
|
|
||||||
|
zcl_abapgit_factory=>get_lxe_texts( )->deserialize(
|
||||||
|
iv_object_type = ms_item-obj_type
|
||||||
|
iv_object_name = ms_item-obj_name
|
||||||
|
ii_xml = ii_xml ).
|
||||||
|
|
||||||
|
ENDMETHOD.
|
||||||
|
|
||||||
|
|
||||||
METHOD exists_a_lock_entry_for.
|
METHOD exists_a_lock_entry_for.
|
||||||
|
|
||||||
DATA: lt_lock_entries TYPE STANDARD TABLE OF seqg3.
|
DATA: lt_lock_entries TYPE STANDARD TABLE OF seqg3.
|
||||||
|
@ -336,6 +356,20 @@ CLASS zcl_abapgit_objects_super IMPLEMENTATION.
|
||||||
ENDMETHOD.
|
ENDMETHOD.
|
||||||
|
|
||||||
|
|
||||||
|
METHOD serialize_lxe_texts.
|
||||||
|
|
||||||
|
IF ii_xml->i18n_params( )-main_language_only = abap_true.
|
||||||
|
RETURN.
|
||||||
|
ENDIF.
|
||||||
|
|
||||||
|
zcl_abapgit_factory=>get_lxe_texts( )->serialize(
|
||||||
|
iv_object_type = ms_item-obj_type
|
||||||
|
iv_object_name = ms_item-obj_name
|
||||||
|
ii_xml = ii_xml ).
|
||||||
|
|
||||||
|
ENDMETHOD.
|
||||||
|
|
||||||
|
|
||||||
METHOD set_default_package.
|
METHOD set_default_package.
|
||||||
|
|
||||||
" In certain cases we need to set the package package via ABAP memory
|
" In certain cases we need to set the package package via ABAP memory
|
||||||
|
|
|
@ -47,24 +47,31 @@ CLASS zcl_abapgit_dot_abapgit DEFINITION
|
||||||
METHODS get_starting_folder
|
METHODS get_starting_folder
|
||||||
RETURNING
|
RETURNING
|
||||||
VALUE(rv_path) TYPE string .
|
VALUE(rv_path) TYPE string .
|
||||||
|
|
||||||
METHODS get_folder_logic
|
METHODS get_folder_logic
|
||||||
RETURNING
|
RETURNING
|
||||||
VALUE(rv_logic) TYPE string .
|
VALUE(rv_logic) TYPE string .
|
||||||
|
|
||||||
METHODS set_folder_logic
|
METHODS set_folder_logic
|
||||||
IMPORTING
|
IMPORTING
|
||||||
!iv_logic TYPE string .
|
!iv_logic TYPE string .
|
||||||
|
|
||||||
METHODS set_starting_folder
|
METHODS set_starting_folder
|
||||||
IMPORTING
|
IMPORTING
|
||||||
!iv_path TYPE string .
|
!iv_path TYPE string .
|
||||||
|
|
||||||
METHODS get_master_language
|
METHODS get_master_language
|
||||||
RETURNING
|
RETURNING
|
||||||
VALUE(rv_language) TYPE spras .
|
VALUE(rv_language) TYPE spras .
|
||||||
* set_master_language
|
METHODS get_main_language
|
||||||
* IMPORTING iv_language TYPE spras,
|
RETURNING
|
||||||
|
VALUE(rv_language) TYPE spras .
|
||||||
|
METHODS get_i18n_languages
|
||||||
|
RETURNING
|
||||||
|
VALUE(rt_languages) TYPE zif_abapgit_definitions=>ty_languages
|
||||||
|
RAISING
|
||||||
|
zcx_abapgit_exception .
|
||||||
|
METHODS set_i18n_languages
|
||||||
|
IMPORTING
|
||||||
|
VALUE(it_languages) TYPE zif_abapgit_definitions=>ty_languages
|
||||||
|
RAISING
|
||||||
|
zcx_abapgit_exception .
|
||||||
METHODS get_signature
|
METHODS get_signature
|
||||||
RETURNING
|
RETURNING
|
||||||
VALUE(rs_signature) TYPE zif_abapgit_definitions=>ty_file_signature
|
VALUE(rs_signature) TYPE zif_abapgit_definitions=>ty_file_signature
|
||||||
|
@ -72,18 +79,20 @@ CLASS zcl_abapgit_dot_abapgit DEFINITION
|
||||||
zcx_abapgit_exception .
|
zcx_abapgit_exception .
|
||||||
METHODS get_requirements
|
METHODS get_requirements
|
||||||
RETURNING
|
RETURNING
|
||||||
VALUE(rt_requirements) TYPE zif_abapgit_dot_abapgit=>ty_requirement_tt.
|
VALUE(rt_requirements) TYPE zif_abapgit_dot_abapgit=>ty_requirement_tt .
|
||||||
METHODS set_requirements
|
METHODS set_requirements
|
||||||
IMPORTING
|
IMPORTING
|
||||||
it_requirements TYPE zif_abapgit_dot_abapgit=>ty_requirement_tt.
|
!it_requirements TYPE zif_abapgit_dot_abapgit=>ty_requirement_tt .
|
||||||
|
|
||||||
METHODS get_i18n_langs
|
METHODS get_i18n_langs
|
||||||
RETURNING
|
RETURNING
|
||||||
VALUE(rv_langs) TYPE string.
|
VALUE(rv_langs) TYPE string
|
||||||
|
RAISING
|
||||||
|
zcx_abapgit_exception .
|
||||||
METHODS set_i18n_langs
|
METHODS set_i18n_langs
|
||||||
IMPORTING
|
IMPORTING
|
||||||
iv_langs TYPE string.
|
!iv_langs TYPE string
|
||||||
|
RAISING
|
||||||
|
zcx_abapgit_exception .
|
||||||
PROTECTED SECTION.
|
PROTECTED SECTION.
|
||||||
PRIVATE SECTION.
|
PRIVATE SECTION.
|
||||||
DATA: ms_data TYPE zif_abapgit_dot_abapgit=>ty_dot_abapgit.
|
DATA: ms_data TYPE zif_abapgit_dot_abapgit=>ty_dot_abapgit.
|
||||||
|
@ -97,18 +106,11 @@ CLASS zcl_abapgit_dot_abapgit DEFINITION
|
||||||
IMPORTING iv_xml TYPE string
|
IMPORTING iv_xml TYPE string
|
||||||
RETURNING VALUE(rs_data) TYPE zif_abapgit_dot_abapgit=>ty_dot_abapgit.
|
RETURNING VALUE(rs_data) TYPE zif_abapgit_dot_abapgit=>ty_dot_abapgit.
|
||||||
|
|
||||||
CLASS-METHODS decode_i18n_langs_string
|
|
||||||
IMPORTING
|
|
||||||
iv_langs TYPE string
|
|
||||||
iv_skip_master_lang TYPE spras OPTIONAL
|
|
||||||
RETURNING
|
|
||||||
VALUE(rt_langs) TYPE zif_abapgit_dot_abapgit=>ty_langs_tt.
|
|
||||||
|
|
||||||
ENDCLASS.
|
ENDCLASS.
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
CLASS ZCL_ABAPGIT_DOT_ABAPGIT IMPLEMENTATION.
|
CLASS zcl_abapgit_dot_abapgit IMPLEMENTATION.
|
||||||
|
|
||||||
|
|
||||||
METHOD add_ignore.
|
METHOD add_ignore.
|
||||||
|
@ -152,35 +154,6 @@ CLASS ZCL_ABAPGIT_DOT_ABAPGIT IMPLEMENTATION.
|
||||||
ENDMETHOD.
|
ENDMETHOD.
|
||||||
|
|
||||||
|
|
||||||
METHOD decode_i18n_langs_string.
|
|
||||||
|
|
||||||
" This should go as an util to TEXTS/i18n class
|
|
||||||
|
|
||||||
DATA lt_langs_str TYPE string_table.
|
|
||||||
DATA lv_master_lang_iso TYPE laiso.
|
|
||||||
FIELD-SYMBOLS <lv_str> LIKE LINE OF lt_langs_str.
|
|
||||||
FIELD-SYMBOLS <lv_lang> LIKE LINE OF rt_langs.
|
|
||||||
|
|
||||||
IF iv_skip_master_lang IS NOT INITIAL.
|
|
||||||
lv_master_lang_iso = cl_i18n_languages=>sap1_to_sap2( iv_skip_master_lang ).
|
|
||||||
ENDIF.
|
|
||||||
|
|
||||||
SPLIT iv_langs AT ',' INTO TABLE lt_langs_str.
|
|
||||||
LOOP AT lt_langs_str ASSIGNING <lv_str>.
|
|
||||||
CONDENSE <lv_str>.
|
|
||||||
<lv_str> = to_upper( <lv_str> ).
|
|
||||||
IF <lv_str> IS NOT INITIAL AND ( lv_master_lang_iso IS INITIAL OR <lv_str> <> lv_master_lang_iso ).
|
|
||||||
APPEND INITIAL LINE TO rt_langs ASSIGNING <lv_lang>.
|
|
||||||
<lv_lang> = <lv_str>.
|
|
||||||
ENDIF.
|
|
||||||
ENDLOOP.
|
|
||||||
|
|
||||||
" TODO: maybe validate language against table, but system may not have one?
|
|
||||||
" TODO: maybe through on lang > 2 symbols ?
|
|
||||||
|
|
||||||
ENDMETHOD.
|
|
||||||
|
|
||||||
|
|
||||||
METHOD deserialize.
|
METHOD deserialize.
|
||||||
|
|
||||||
DATA: lv_xml TYPE string,
|
DATA: lv_xml TYPE string,
|
||||||
|
@ -228,18 +201,24 @@ CLASS ZCL_ABAPGIT_DOT_ABAPGIT IMPLEMENTATION.
|
||||||
|
|
||||||
|
|
||||||
METHOD get_i18n_langs.
|
METHOD get_i18n_langs.
|
||||||
|
" todo, replace with get_i18n_languages
|
||||||
DATA lt_langs TYPE zif_abapgit_dot_abapgit=>ty_langs_tt.
|
rv_langs = zcl_abapgit_lxe_texts=>convert_table_to_lang_string( ms_data-i18n_languages ).
|
||||||
|
|
||||||
lt_langs = decode_i18n_langs_string(
|
|
||||||
iv_langs = ms_data-i18n_langs
|
|
||||||
iv_skip_master_lang = ms_data-master_language ).
|
|
||||||
CONCATENATE LINES OF lt_langs INTO rv_langs SEPARATED BY ','.
|
|
||||||
|
|
||||||
ENDMETHOD.
|
ENDMETHOD.
|
||||||
|
|
||||||
|
|
||||||
|
METHOD get_i18n_languages.
|
||||||
|
rt_languages = ms_data-i18n_languages.
|
||||||
|
ENDMETHOD.
|
||||||
|
|
||||||
|
|
||||||
|
METHOD get_main_language.
|
||||||
|
rv_language = ms_data-master_language.
|
||||||
|
ENDMETHOD.
|
||||||
|
|
||||||
|
|
||||||
METHOD get_master_language.
|
METHOD get_master_language.
|
||||||
|
" todo, transition to get_main_language()
|
||||||
rv_language = ms_data-master_language.
|
rv_language = ms_data-master_language.
|
||||||
ENDMETHOD.
|
ENDMETHOD.
|
||||||
|
|
||||||
|
@ -343,13 +322,16 @@ CLASS ZCL_ABAPGIT_DOT_ABAPGIT IMPLEMENTATION.
|
||||||
|
|
||||||
METHOD set_i18n_langs.
|
METHOD set_i18n_langs.
|
||||||
|
|
||||||
DATA lt_langs TYPE zif_abapgit_dot_abapgit=>ty_langs_tt.
|
" todo, replace with set_i18n_languages
|
||||||
|
ms_data-i18n_languages = zcl_abapgit_lxe_texts=>convert_lang_string_to_table(
|
||||||
|
iv_langs = iv_langs
|
||||||
|
iv_skip_main_language = ms_data-master_language ).
|
||||||
|
|
||||||
lt_langs = decode_i18n_langs_string(
|
ENDMETHOD.
|
||||||
iv_langs = iv_langs
|
|
||||||
iv_skip_master_lang = ms_data-master_language ).
|
|
||||||
CONCATENATE LINES OF lt_langs INTO ms_data-i18n_langs SEPARATED BY ','.
|
|
||||||
|
|
||||||
|
|
||||||
|
METHOD set_i18n_languages.
|
||||||
|
ms_data-i18n_languages = it_languages.
|
||||||
ENDMETHOD.
|
ENDMETHOD.
|
||||||
|
|
||||||
|
|
||||||
|
|
|
@ -7,8 +7,7 @@ CLASS ltcl_dot_abapgit DEFINITION FOR TESTING DURATION SHORT RISK LEVEL HARMLESS
|
||||||
METHODS:
|
METHODS:
|
||||||
identity FOR TESTING
|
identity FOR TESTING
|
||||||
RAISING zcx_abapgit_exception,
|
RAISING zcx_abapgit_exception,
|
||||||
ignore FOR TESTING,
|
ignore FOR TESTING.
|
||||||
i18n FOR TESTING.
|
|
||||||
|
|
||||||
ENDCLASS.
|
ENDCLASS.
|
||||||
|
|
||||||
|
@ -52,7 +51,7 @@ CLASS ltcl_dot_abapgit IMPLEMENTATION.
|
||||||
act = lv_ignored
|
act = lv_ignored
|
||||||
exp = abap_false ).
|
exp = abap_false ).
|
||||||
|
|
||||||
" Add file to ignore list -> expect to be ignored
|
" Add file to ignore list -> expect to be ignored
|
||||||
lo_dot->add_ignore( iv_path = lc_path
|
lo_dot->add_ignore( iv_path = lc_path
|
||||||
iv_filename = lc_filename ).
|
iv_filename = lc_filename ).
|
||||||
|
|
||||||
|
@ -62,7 +61,7 @@ CLASS ltcl_dot_abapgit IMPLEMENTATION.
|
||||||
act = lv_ignored
|
act = lv_ignored
|
||||||
exp = abap_true ).
|
exp = abap_true ).
|
||||||
|
|
||||||
" Remove file from ignore list -> expect to be allowed
|
" Remove file from ignore list -> expect to be allowed
|
||||||
lo_dot->remove_ignore( iv_path = lc_path
|
lo_dot->remove_ignore( iv_path = lc_path
|
||||||
iv_filename = lc_filename ).
|
iv_filename = lc_filename ).
|
||||||
|
|
||||||
|
@ -101,33 +100,4 @@ CLASS ltcl_dot_abapgit IMPLEMENTATION.
|
||||||
|
|
||||||
ENDMETHOD.
|
ENDMETHOD.
|
||||||
|
|
||||||
METHOD i18n.
|
|
||||||
|
|
||||||
DATA lo_dot TYPE REF TO zcl_abapgit_dot_abapgit.
|
|
||||||
|
|
||||||
lo_dot = zcl_abapgit_dot_abapgit=>build_default( ).
|
|
||||||
lo_dot->ms_data-master_language = 'E'.
|
|
||||||
|
|
||||||
cl_abap_unit_assert=>assert_equals(
|
|
||||||
act = lo_dot->ms_data-i18n_langs
|
|
||||||
exp = '' ).
|
|
||||||
|
|
||||||
lo_dot->set_i18n_langs( 'en , de, es' ).
|
|
||||||
|
|
||||||
cl_abap_unit_assert=>assert_equals(
|
|
||||||
act = lo_dot->ms_data-i18n_langs
|
|
||||||
exp = 'DE,ES' ).
|
|
||||||
|
|
||||||
cl_abap_unit_assert=>assert_equals(
|
|
||||||
act = lo_dot->get_i18n_langs( )
|
|
||||||
exp = 'DE,ES' ).
|
|
||||||
|
|
||||||
lo_dot->ms_data-i18n_langs = `en , DE, es `.
|
|
||||||
|
|
||||||
cl_abap_unit_assert=>assert_equals(
|
|
||||||
act = lo_dot->get_i18n_langs( )
|
|
||||||
exp = 'DE,ES' ).
|
|
||||||
|
|
||||||
ENDMETHOD.
|
|
||||||
|
|
||||||
ENDCLASS.
|
ENDCLASS.
|
||||||
|
|
|
@ -209,7 +209,7 @@ ENDCLASS.
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
CLASS ZCL_ABAPGIT_REPO IMPLEMENTATION.
|
CLASS zcl_abapgit_repo IMPLEMENTATION.
|
||||||
|
|
||||||
|
|
||||||
METHOD bind_listener.
|
METHOD bind_listener.
|
||||||
|
@ -252,7 +252,7 @@ CLASS ZCL_ABAPGIT_REPO IMPLEMENTATION.
|
||||||
&& |'{ zcl_abapgit_convert=>conversion_exit_isola_output( sy-langu ) }'|
|
&& |'{ zcl_abapgit_convert=>conversion_exit_isola_output( sy-langu ) }'|
|
||||||
&& | does not match main language |
|
&& | does not match main language |
|
||||||
&& |'{ zcl_abapgit_convert=>conversion_exit_isola_output( lv_master_language ) }'.|
|
&& |'{ zcl_abapgit_convert=>conversion_exit_isola_output( lv_master_language ) }'.|
|
||||||
&& | Run 'Advanced' > 'Open in main language'| ).
|
&& | Select 'Advanced' > 'Open in Main Language'| ).
|
||||||
ENDIF.
|
ENDIF.
|
||||||
|
|
||||||
ENDMETHOD.
|
ENDMETHOD.
|
||||||
|
@ -470,6 +470,7 @@ CLASS ZCL_ABAPGIT_REPO IMPLEMENTATION.
|
||||||
METHOD get_files_local.
|
METHOD get_files_local.
|
||||||
|
|
||||||
DATA lo_serialize TYPE REF TO zcl_abapgit_serialize.
|
DATA lo_serialize TYPE REF TO zcl_abapgit_serialize.
|
||||||
|
DATA lt_languages TYPE zif_abapgit_definitions=>ty_languages.
|
||||||
|
|
||||||
" Serialization happened before and no refresh request
|
" Serialization happened before and no refresh request
|
||||||
IF lines( mt_local ) > 0 AND mv_request_local_refresh = abap_false.
|
IF lines( mt_local ) > 0 AND mv_request_local_refresh = abap_false.
|
||||||
|
@ -477,9 +478,14 @@ CLASS ZCL_ABAPGIT_REPO IMPLEMENTATION.
|
||||||
RETURN.
|
RETURN.
|
||||||
ENDIF.
|
ENDIF.
|
||||||
|
|
||||||
|
lt_languages = zcl_abapgit_lxe_texts=>get_translation_languages(
|
||||||
|
iv_main_language = get_dot_abapgit( )->get_main_language( )
|
||||||
|
it_i18n_languages = get_dot_abapgit( )->get_i18n_languages( ) ).
|
||||||
|
|
||||||
CREATE OBJECT lo_serialize
|
CREATE OBJECT lo_serialize
|
||||||
EXPORTING
|
EXPORTING
|
||||||
iv_serialize_master_lang_only = ms_data-local_settings-serialize_master_lang_only.
|
iv_serialize_master_lang_only = ms_data-local_settings-serialize_master_lang_only
|
||||||
|
it_translation_langs = lt_languages.
|
||||||
|
|
||||||
rt_files = lo_serialize->files_local(
|
rt_files = lo_serialize->files_local(
|
||||||
iv_package = get_package( )
|
iv_package = get_package( )
|
||||||
|
|
|
@ -9,12 +9,10 @@ INTERFACE zif_abapgit_dot_abapgit PUBLIC.
|
||||||
TYPES:
|
TYPES:
|
||||||
ty_requirement_tt TYPE STANDARD TABLE OF ty_requirement WITH DEFAULT KEY .
|
ty_requirement_tt TYPE STANDARD TABLE OF ty_requirement WITH DEFAULT KEY .
|
||||||
|
|
||||||
TYPES:
|
|
||||||
ty_langs_tt TYPE STANDARD TABLE OF laiso WITH DEFAULT KEY.
|
|
||||||
TYPES:
|
TYPES:
|
||||||
BEGIN OF ty_dot_abapgit,
|
BEGIN OF ty_dot_abapgit,
|
||||||
master_language TYPE spras,
|
master_language TYPE spras,
|
||||||
i18n_langs TYPE string,
|
i18n_languages TYPE zif_abapgit_definitions=>ty_languages,
|
||||||
starting_folder TYPE string,
|
starting_folder TYPE string,
|
||||||
folder_logic TYPE string,
|
folder_logic TYPE string,
|
||||||
ignore TYPE STANDARD TABLE OF string WITH DEFAULT KEY,
|
ignore TYPE STANDARD TABLE OF string WITH DEFAULT KEY,
|
||||||
|
|
|
@ -42,6 +42,9 @@ CLASS zcl_abapgit_factory DEFINITION
|
||||||
CLASS-METHODS get_http_agent
|
CLASS-METHODS get_http_agent
|
||||||
RETURNING
|
RETURNING
|
||||||
VALUE(ri_http_agent) TYPE REF TO zif_abapgit_http_agent .
|
VALUE(ri_http_agent) TYPE REF TO zif_abapgit_http_agent .
|
||||||
|
CLASS-METHODS get_lxe_texts
|
||||||
|
RETURNING
|
||||||
|
VALUE(ri_lxe_texts) TYPE REF TO zif_abapgit_lxe_texts .
|
||||||
PROTECTED SECTION.
|
PROTECTED SECTION.
|
||||||
PRIVATE SECTION.
|
PRIVATE SECTION.
|
||||||
|
|
||||||
|
@ -70,11 +73,12 @@ CLASS zcl_abapgit_factory DEFINITION
|
||||||
CLASS-DATA gi_environment TYPE REF TO zif_abapgit_environment .
|
CLASS-DATA gi_environment TYPE REF TO zif_abapgit_environment .
|
||||||
CLASS-DATA gi_longtext TYPE REF TO zif_abapgit_longtexts .
|
CLASS-DATA gi_longtext TYPE REF TO zif_abapgit_longtexts .
|
||||||
CLASS-DATA gi_http_agent TYPE REF TO zif_abapgit_http_agent .
|
CLASS-DATA gi_http_agent TYPE REF TO zif_abapgit_http_agent .
|
||||||
|
CLASS-DATA gi_lxe_texts TYPE REF TO zif_abapgit_lxe_texts .
|
||||||
ENDCLASS.
|
ENDCLASS.
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
CLASS ZCL_ABAPGIT_FACTORY IMPLEMENTATION.
|
CLASS zcl_abapgit_factory IMPLEMENTATION.
|
||||||
|
|
||||||
|
|
||||||
METHOD get_branch_overview.
|
METHOD get_branch_overview.
|
||||||
|
@ -150,6 +154,16 @@ CLASS ZCL_ABAPGIT_FACTORY IMPLEMENTATION.
|
||||||
ENDMETHOD.
|
ENDMETHOD.
|
||||||
|
|
||||||
|
|
||||||
|
METHOD get_lxe_texts.
|
||||||
|
|
||||||
|
IF gi_lxe_texts IS NOT BOUND.
|
||||||
|
CREATE OBJECT gi_lxe_texts TYPE zcl_abapgit_lxe_texts.
|
||||||
|
ENDIF.
|
||||||
|
ri_lxe_texts = gi_lxe_texts.
|
||||||
|
|
||||||
|
ENDMETHOD.
|
||||||
|
|
||||||
|
|
||||||
METHOD get_sap_package.
|
METHOD get_sap_package.
|
||||||
|
|
||||||
DATA: ls_sap_package TYPE ty_sap_package.
|
DATA: ls_sap_package TYPE ty_sap_package.
|
||||||
|
|
|
@ -30,13 +30,16 @@ CLASS zcl_abapgit_injector DEFINITION
|
||||||
CLASS-METHODS set_http_agent
|
CLASS-METHODS set_http_agent
|
||||||
IMPORTING
|
IMPORTING
|
||||||
!ii_http_agent TYPE REF TO zif_abapgit_http_agent .
|
!ii_http_agent TYPE REF TO zif_abapgit_http_agent .
|
||||||
|
CLASS-METHODS set_lxe_texts
|
||||||
|
IMPORTING
|
||||||
|
!ii_lxe_texts TYPE REF TO zif_abapgit_lxe_texts .
|
||||||
PROTECTED SECTION.
|
PROTECTED SECTION.
|
||||||
PRIVATE SECTION.
|
PRIVATE SECTION.
|
||||||
ENDCLASS.
|
ENDCLASS.
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
CLASS ZCL_ABAPGIT_INJECTOR IMPLEMENTATION.
|
CLASS zcl_abapgit_injector IMPLEMENTATION.
|
||||||
|
|
||||||
|
|
||||||
METHOD set_code_inspector.
|
METHOD set_code_inspector.
|
||||||
|
@ -82,6 +85,11 @@ CLASS ZCL_ABAPGIT_INJECTOR IMPLEMENTATION.
|
||||||
ENDMETHOD.
|
ENDMETHOD.
|
||||||
|
|
||||||
|
|
||||||
|
METHOD set_lxe_texts.
|
||||||
|
zcl_abapgit_factory=>gi_lxe_texts = ii_lxe_texts.
|
||||||
|
ENDMETHOD.
|
||||||
|
|
||||||
|
|
||||||
METHOD set_sap_package.
|
METHOD set_sap_package.
|
||||||
|
|
||||||
DATA: ls_sap_package TYPE zcl_abapgit_factory=>ty_sap_package.
|
DATA: ls_sap_package TYPE zcl_abapgit_factory=>ty_sap_package.
|
||||||
|
|
|
@ -73,7 +73,7 @@ ENDCLASS.
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
CLASS ZCL_ABAPGIT_ZIP IMPLEMENTATION.
|
CLASS zcl_abapgit_zip IMPLEMENTATION.
|
||||||
|
|
||||||
|
|
||||||
METHOD encode_files.
|
METHOD encode_files.
|
||||||
|
@ -102,7 +102,7 @@ CLASS ZCL_ABAPGIT_ZIP IMPLEMENTATION.
|
||||||
DATA li_log TYPE REF TO zif_abapgit_log.
|
DATA li_log TYPE REF TO zif_abapgit_log.
|
||||||
DATA lt_zip TYPE zif_abapgit_definitions=>ty_files_item_tt.
|
DATA lt_zip TYPE zif_abapgit_definitions=>ty_files_item_tt.
|
||||||
DATA lo_serialize TYPE REF TO zcl_abapgit_serialize.
|
DATA lo_serialize TYPE REF TO zcl_abapgit_serialize.
|
||||||
|
DATA lt_languages TYPE zif_abapgit_definitions=>ty_languages.
|
||||||
|
|
||||||
CREATE OBJECT li_log TYPE zcl_abapgit_log.
|
CREATE OBJECT li_log TYPE zcl_abapgit_log.
|
||||||
li_log->set_title( 'Zip Export Log' ).
|
li_log->set_title( 'Zip Export Log' ).
|
||||||
|
@ -111,9 +111,14 @@ CLASS ZCL_ABAPGIT_ZIP IMPLEMENTATION.
|
||||||
zcx_abapgit_exception=>raise( |Package { iv_package } doesn't exist| ).
|
zcx_abapgit_exception=>raise( |Package { iv_package } doesn't exist| ).
|
||||||
ENDIF.
|
ENDIF.
|
||||||
|
|
||||||
|
lt_languages = zcl_abapgit_lxe_texts=>get_translation_languages(
|
||||||
|
iv_main_language = io_dot_abapgit->get_main_language( )
|
||||||
|
it_i18n_languages = io_dot_abapgit->get_i18n_languages( ) ).
|
||||||
|
|
||||||
CREATE OBJECT lo_serialize
|
CREATE OBJECT lo_serialize
|
||||||
EXPORTING
|
EXPORTING
|
||||||
iv_serialize_master_lang_only = is_local_settings-serialize_master_lang_only.
|
iv_serialize_master_lang_only = is_local_settings-serialize_master_lang_only
|
||||||
|
it_translation_langs = lt_languages.
|
||||||
|
|
||||||
lt_zip = lo_serialize->files_local(
|
lt_zip = lo_serialize->files_local(
|
||||||
iv_package = iv_package
|
iv_package = iv_package
|
||||||
|
|
Loading…
Reference in New Issue
Block a user