Bin gerade dabei ältere RFC VBA Programme auf GUI750 umzustellen.
Da fiel mir mein alter SMARTFORMS Übersetzer in die Hände.
Interessant ist dabei , das durch die Unicode unterstützung auch Übersetzungen mit chinesischen und kyrillischen Schriften kein Problem mehr darstellen.
(Habs mal mit Google - Translate durchgeführt... geht direkt mit Paste & Copy)
Ich hatte das Tool mal entwickelt, um Excel sheets in die Fachbereiche zu geben, da vermutlich niemand alle Sprachen beherrscht und ich nicht die Verantwortung
für Übersetzungen von Fachbegriffen übernehmen möchte.
Hier der RFC-fähige Funktionsbaustein:
- Code: [Select all] [Expand/Collapse] [Download] (Untitled.txt)
- FUNCTION Z_BC_SF_TRANSLATION.
- *"----------------------------------------------------------------------
- *"*"Local Interface:
- *" IMPORTING
- *" VALUE(SOURCELANG) TYPE SPRAS
- *" VALUE(TARGETLANG) TYPE SPRAS
- *" VALUE(FORMNAME) TYPE TDOBNAME
- *" VALUE(ACTION) TYPE CHAR01 DEFAULT 'S'
- *" VALUE(DOCSTATE) TYPE CHAR01 DEFAULT 'A'
- *" VALUE(FILLMODE) TYPE CHAR01 DEFAULT '1'
- *" EXPORTING
- *" VALUE(OLWRKOBJ) TYPE LWRKOBJ
- *" TABLES
- *" TARGETTEXT STRUCTURE STXFTXT
- *" EXCEPTIONS
- *" ERROR_IN_UPDATE
- *" INPUT_PARA_ERROR
- *" FORM_NOT_FOUND
- *" NO_TEXT_FOUND
- *" CANT_UPDATE_MASTERLANG
- *"----------------------------------------------------------------------
- targetlang IS INITIAL OR
- formname IS INITIAL.
- RAISE input_para_error.
- RAISE input_para_error.
- RAISE form_not_found.
- ls_lwrkobj-targetlang = targetlang.
- ls_lwrkobj-objtype = 'SSF'.
- ls_lwrkobj-objname = ls_stxfadm-formname.
- ls_lwrkobj-devclass = ls_stxfadm-devclass.
- ls_lwrkobj-masterlang = ls_stxfadm-masterlang.
- ls_lwrkobj-sourcelang = sourcelang.
- ls_lwrkobj-uname = ls_stxfadm-lastuser.
- ls_lwrkobj-udate = ls_stxfadm-lastdate.
- ls_lwrkobj-utime = ls_stxfadm-lasttime.
- CALL FUNCTION 'SSFTR_GET_STATUS'
- EXPORTING
- sourcelang = sourcelang
- targetlang = targetlang
- OBJECTS = lt_lwrkobj.
- EXIT.
- EXIT.
- spras = ls_stxfadm-masterlang AND
- txtype = 'F' AND
- formname = ls_stxfadm-formname.
- RAISE no_text_found.
- * Zeile ergänzen
- <p>-spras = ls_lwrkobj-targetlang.
- <p>-txtype = 'F'.
- <p>-formname = ls_lwrkobj-objname.
- * Prüfen
- READ TABLE lt_stext
- WITH KEY txtype = 'F' formname = <p>-formname
- iname = <p>-iname linenr = <p>-linenr
- INTO ls_tartxt.
- * Übernehme Zeilenformat von Originalsprache
- <p>-tdformat = ls_tartxt-tdformat.
- ELSE.
- * Markiere Löschung wenn nicht in Orig.sprache
- * Lösche was nicht passt
- * ggf. mit LEER-Zeilen auffüllen
- AT NEW iname.
- WHERE iname = ls_tartxt-iname.
- READ TABLE targettext
- WITH KEY iname = <p>-iname
- linenr = <p>-linenr
- TRANSPORTING NO FIELDS.
- <p>-spras = space.
- UNASSIGN <p>.
- ls_tartxt-spras = ls_lwrkobj-targetlang.
- AT NEW iname.
- ls_uptxt-tdformat = '/E'.
- ls_uptxt-tdformat = ls_tartxt-tdformat.
- ls_uptxt-tdline = ls_tartxt-tdline.
- CALL FUNCTION 'SSFTR_SET_TEXT'
- EXPORTING
- targetlang = ls_lwrkobj-targetlang
- sourcelang = ls_lwrkobj-sourcelang
- docstate = docstate
- targettext = lt_uptxt
- CHANGING
- tlwrkobj = olwrkobj
- EXCEPTIONS
- error_in_update = 1
- OTHERS = 2.
- RAISE error_in_update.
- spras = sourcelang AND
- txtype = 'F' AND
- formname = ls_stxfadm-formname.
- GeSHi ©
Beispiel :
gruß Jens
Bin mal gespannt, ob das Tool gut ankommt.