abapGit/src/objects/texts/zcl_abapgit_properties_file.clas.abap
Marc Bernard 412cd9995b
Refactor: i18n filename logic (#6892)
Co-authored-by: Albert Mink <albert.mink@sap.com>
2024-04-05 12:57:27 +02:00

86 lines
1.7 KiB
ABAP

CLASS zcl_abapgit_properties_file DEFINITION
PUBLIC
FINAL
CREATE PUBLIC .
PUBLIC SECTION.
INTERFACES zif_abapgit_i18n_file.
CONSTANTS:
c_properties_feature TYPE string VALUE 'TRANSL'.
METHODS constructor
IMPORTING
iv_lang TYPE laiso.
METHODS parse
IMPORTING
iv_xdata TYPE xstring
RAISING
zcx_abapgit_exception.
METHODS push_text_pairs
IMPORTING it_translation TYPE string_table.
PROTECTED SECTION.
PRIVATE SECTION.
DATA mv_lang TYPE laiso.
DATA mt_translation TYPE string_table.
ENDCLASS.
CLASS zcl_abapgit_properties_file IMPLEMENTATION.
METHOD constructor.
mv_lang = to_lower( iv_lang ).
ENDMETHOD.
METHOD parse.
DATA lv_data TYPE string.
lv_data = zcl_abapgit_convert=>xstring_to_string_utf8( iv_xdata ).
SPLIT lv_data AT cl_abap_char_utilities=>newline INTO TABLE mt_translation.
ENDMETHOD.
METHOD push_text_pairs.
mt_translation = it_translation.
ENDMETHOD.
METHOD zif_abapgit_i18n_file~ext.
rv_ext = 'properties'.
ENDMETHOD.
METHOD zif_abapgit_i18n_file~lang.
rv_lang = mv_lang.
ENDMETHOD.
METHOD zif_abapgit_i18n_file~render.
DATA: lv_translation TYPE string,
lo_buf TYPE REF TO zcl_abapgit_string_buffer,
lv_str TYPE string.
lv_translation = concat_lines_of( table = mt_translation
sep = cl_abap_char_utilities=>newline ).
CREATE OBJECT lo_buf.
lo_buf->add( lv_translation ).
lv_str = lo_buf->join_w_newline_and_flush( ) && cl_abap_char_utilities=>newline.
rv_data = zcl_abapgit_convert=>string_to_xstring_utf8( lv_str ).
ENDMETHOD.
METHOD zif_abapgit_i18n_file~translate.
ENDMETHOD.
ENDCLASS.