Press n or j to go to the next uncovered block, b, p or k for the previous block.
| 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 120 121 122 123 124 125 126 127 128 129 130 131 132 133 134 135 136 137 138 139 140 141 142 143 144 145 146 147 148 149 150 151 152 153 154 155 156 157 158 159 160 161 162 163 164 165 166 167 168 169 170 171 172 173 174 175 176 177 178 179 180 181 182 183 184 185 186 187 188 189 190 191 192 193 194 195 196 197 198 199 200 201 202 203 204 205 206 207 208 209 210 211 212 213 214 215 216 217 218 219 220 221 222 223 224 225 226 227 228 229 230 231 232 233 234 235 236 237 238 239 240 241 242 243 244 245 246 247 248 249 250 251 252 253 254 255 256 257 258 259 260 261 262 263 264 265 266 267 268 269 270 271 272 273 274 275 276 277 278 | 1x 1x 1x 1x 1x 1x 1x 1x 1x 1x 1x 1x 1x 1x 1x 1x 1x 1x 1x 1x 1x 1x 1x 1x 1x 1x 1x 1x 1x 1x 1x 1x 1x 1x 1x 1x 1x 1x 1x 1x 1x 1x 1x 1x 1x 1x 1x 1x 1x 1x 1x 1x 1x 1x 1x 1x 1x 1x 1x 1x 1x 1x 1x 1x 1x 1x 1x 1x 1x 1x 1x 1x 1x 1x 1x 1x 1x 1x 1x 1x 1x 1x 1x 1x 1x 1x 1x 1x 1x 1x 1x 1x 1x 1x 1x 1x 1x 1x 1x 1x 1x 1x 1x 1x 1x 1x 1x 1x 1x 1x 1x 1x 1x 1x 2x 2x 2x 2x 2x 2x 2x 2x 2x 2x 2x 2x 2x 2x 2x 1x 1x 1x 1x 1x 1x 1x 1x 1x 1x 1x 1x 1x 1x 1x 1x 1x 1x 1x 20x 20x 8x 8x 8x 8x 8x 20x 20x 20x 20x 20x 5x 5x 5x 20x 1x 1x 1x 1x 1x 1x 1x 1x 1x 1x 1x 1x 1x 1x 1x 1x 1x 1x 1x 1x 2x 2x 2x 2x 2x 2x 1x 1x 1x 1x 1x 3x 3x 3x 3x 3x 3x 3x 3x 1x 1x 2x 3x 5x 5x 5x 5x 5x 1x 1x 5x 5x 5x 5x 5x 5x 5x 5x 5x 5x 4x 4x 4x 4x 1x 1x 5x 2x 2x 1x 1x 1x 2x 2x 2x 2x 2x 2x 1x 1x 1x 2x 3x 3x 3x 3x 3x 3x 3x 3x 3x 3x 3x 3x 3x 3x 3x 1x 1x 3x 1x 1x 1x | CLASS zcl_abapgit_i18n_params DEFINITION
PUBLIC
FINAL
CREATE PRIVATE.
PUBLIC SECTION.
DATA ms_params TYPE zif_abapgit_definitions=>ty_i18n_params READ-ONLY .
CLASS-METHODS new
IMPORTING
!iv_main_language TYPE spras DEFAULT zif_abapgit_definitions=>c_english
!iv_main_language_only TYPE abap_bool DEFAULT abap_false
!it_translation_langs TYPE zif_abapgit_definitions=>ty_languages OPTIONAL
!iv_use_lxe TYPE abap_bool DEFAULT abap_false
!is_params TYPE zif_abapgit_definitions=>ty_i18n_params OPTIONAL
RETURNING
VALUE(ro_instance) TYPE REF TO zcl_abapgit_i18n_params.
METHODS constructor
IMPORTING
!iv_main_language TYPE spras DEFAULT zif_abapgit_definitions=>c_english
!iv_main_language_only TYPE abap_bool DEFAULT abap_false
!it_translation_langs TYPE zif_abapgit_definitions=>ty_languages OPTIONAL
!iv_use_lxe TYPE abap_bool DEFAULT abap_false
!is_params TYPE zif_abapgit_definitions=>ty_i18n_params OPTIONAL.
METHODS is_lxe_applicable
RETURNING
VALUE(rv_yes) TYPE abap_bool .
METHODS build_language_filter
RETURNING
VALUE(rt_language_filter) TYPE zif_abapgit_environment=>ty_system_language_filter .
METHODS trim_saplang_list
CHANGING
ct_sap_langs TYPE zif_abapgit_definitions=>ty_sap_langu_tab
RAISING
zcx_abapgit_exception.
METHODS trim_saplang_keyed_table
IMPORTING
iv_lang_field_name TYPE abap_compname
iv_keep_master_lang TYPE abap_bool DEFAULT abap_false "sy-langu OPTIONAL
CHANGING
ct_tab TYPE STANDARD TABLE
RAISING
zcx_abapgit_exception.
CLASS-METHODS normalize_obj_patterns
IMPORTING
it_wo_translation_patterns TYPE string_table
RETURNING
VALUE(rt_wo_translation_clean) TYPE string_table
RAISING
zcx_abapgit_exception.
CLASS-METHODS match_obj_patterns
IMPORTING
it_wo_translation_patterns TYPE string_table
is_tadir TYPE zif_abapgit_definitions=>ty_tadir
RETURNING
VALUE(rv_yes) TYPE abap_bool
RAISING
zcx_abapgit_exception.
PROTECTED SECTION.
PRIVATE SECTION.
DATA mt_language_filter TYPE zif_abapgit_environment=>ty_system_language_filter.
CLASS-METHODS iso_langs_to_lang_filter
IMPORTING
it_iso_filter TYPE zif_abapgit_definitions=>ty_languages
RETURNING
VALUE(rt_language_filter) TYPE zif_abapgit_environment=>ty_system_language_filter.
ENDCLASS.
CLASS ZCL_ABAPGIT_I18N_PARAMS IMPLEMENTATION.
METHOD build_language_filter.
IF mt_language_filter IS INITIAL.
" translation_languages are includes, system langs are excludes, so the do not interfere
IF ms_params-translation_languages IS NOT INITIAL.
mt_language_filter = iso_langs_to_lang_filter( ms_params-translation_languages ).
ELSE.
mt_language_filter = zcl_abapgit_factory=>get_environment( )->get_system_language_filter( ).
ENDIF.
ENDIF.
rt_language_filter = mt_language_filter.
ENDMETHOD.
METHOD constructor.
IF is_params IS NOT INITIAL.
ms_params = is_params.
ELSE.
ms_params-main_language = iv_main_language.
ms_params-main_language_only = iv_main_language_only.
ms_params-translation_languages = it_translation_langs.
ms_params-use_lxe = iv_use_lxe.
ENDIF.
ASSERT ms_params-main_language IS NOT INITIAL.
ENDMETHOD.
METHOD iso_langs_to_lang_filter.
DATA lv_laiso LIKE LINE OF it_iso_filter.
DATA lv_langu TYPE sy-langu.
DATA ls_range LIKE LINE OF rt_language_filter.
ls_range-sign = 'I'.
ls_range-option = 'EQ'.
LOOP AT it_iso_filter INTO lv_laiso.
zcl_abapgit_convert=>language_sap2_to_sap1(
EXPORTING
im_lang_sap2 = lv_laiso
RECEIVING
re_lang_sap1 = lv_langu
EXCEPTIONS
no_assignment = 1
OTHERS = 2 ).
IF sy-subrc <> 0.
CONTINUE.
ENDIF.
ls_range-low = lv_langu.
APPEND ls_range TO rt_language_filter.
ENDLOOP.
ENDMETHOD.
METHOD is_lxe_applicable.
rv_yes = boolc( ms_params-main_language_only = abap_false AND
ms_params-use_lxe = abap_true AND
ms_params-translation_languages IS NOT INITIAL ).
ENDMETHOD.
METHOD match_obj_patterns.
DATA lv_pattern TYPE string.
DATA lv_path TYPE string.
LOOP AT it_wo_translation_patterns INTO lv_pattern.
CHECK lv_pattern IS NOT INITIAL.
IF NOT lv_pattern+0(1) CA '*/'.
" The idea is to simplify entering package paths e.g. subpkg/* instead of /src/subpkg/* or */subpkg/*
" or object names: zcl.clas instead of */zcl.clas
" But maybe it is a bad idea ... to see on practice
lv_pattern = `*/` && lv_pattern.
ENDIF.
" Compose simplified file path
lv_path = is_tadir-path && to_lower( is_tadir-obj_name ) && `.` && to_lower( is_tadir-object ).
IF lv_path CP lv_pattern.
rv_yes = abap_true.
EXIT.
ENDIF.
ENDLOOP.
ENDMETHOD.
METHOD new.
CREATE OBJECT ro_instance
EXPORTING
iv_main_language = iv_main_language
iv_main_language_only = iv_main_language_only
it_translation_langs = it_translation_langs
iv_use_lxe = iv_use_lxe
is_params = is_params.
ENDMETHOD.
METHOD normalize_obj_patterns.
DATA lv_pattern TYPE string.
LOOP AT it_wo_translation_patterns INTO lv_pattern.
CONDENSE lv_pattern.
CHECK lv_pattern IS NOT INITIAL.
lv_pattern = to_lower( lv_pattern ).
" TODO validation if needed
APPEND lv_pattern TO rt_wo_translation_clean.
ENDLOOP.
ENDMETHOD.
METHOD trim_saplang_keyed_table.
DATA lv_laiso TYPE laiso.
DATA lv_index TYPE i.
FIELD-SYMBOLS <ls_i> TYPE any.
FIELD-SYMBOLS <lv_langu> TYPE sy-langu.
IF ms_params-translation_languages IS INITIAL OR iv_lang_field_name IS INITIAL.
RETURN. " Nothing to filter
ENDIF.
LOOP AT ct_tab ASSIGNING <ls_i>.
lv_index = sy-tabix.
ASSIGN COMPONENT iv_lang_field_name OF STRUCTURE <ls_i> TO <lv_langu>.
ASSERT sy-subrc = 0.
IF iv_keep_master_lang = abap_true AND <lv_langu> = ms_params-main_language.
CONTINUE. " Just keep it
ENDIF.
zcl_abapgit_convert=>language_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.
DELETE ct_tab INDEX lv_index. " Not in the list anyway ...
CONTINUE.
ENDIF.
" Not a sorted table, but presumably the list is small, so no significant performance flow
READ TABLE ms_params-translation_languages TRANSPORTING NO FIELDS WITH KEY table_line = lv_laiso.
IF sy-subrc <> 0.
DELETE ct_tab INDEX lv_index.
ENDIF.
ENDLOOP.
ENDMETHOD.
METHOD trim_saplang_list.
DATA lv_langu TYPE sy-langu.
DATA lv_laiso TYPE laiso.
DATA lv_index TYPE i.
IF ms_params-translation_languages IS INITIAL.
RETURN. " Nothing to filter
ENDIF.
LOOP AT ct_sap_langs INTO lv_langu.
lv_index = sy-tabix.
zcl_abapgit_convert=>language_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.
DELETE ct_sap_langs INDEX lv_index. " Not in the list anyway ...
CONTINUE.
ENDIF.
" Not a sorted table, but presumably the list is small, so no significant performance flow
READ TABLE ms_params-translation_languages TRANSPORTING NO FIELDS WITH KEY table_line = lv_laiso.
IF sy-subrc <> 0.
DELETE ct_sap_langs INDEX lv_index.
ENDIF.
ENDLOOP.
ENDMETHOD.
ENDCLASS.
|