WDA 程序文本翻译OTR

Posted ^ω^SAp傻X^o^

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了WDA 程序文本翻译OTR相关的知识,希望对你有一定的参考价值。

1.针对直接使用表字段,数据元素的情况:

   1.1修改数据元素对应的语言值:DD04T。

   1.2模拟SE63插入翻译条目:LXE_LOG

   1.3运行时文件翻译条目:DDFTX

*&---------------------------------------------------------------------*
*& Report  ZHSICRM_TEXTMD
*&
*&---------------------------------------------------------------------*
*&
*&批量维护数据元素文本,保证使用数据元素文本的屏幕位置能正常显示多语言
*&李渊 20170113  创建
*&上传文件以表DD04T为结构字段
*&---------------------------------------------------------------------*
REPORT ZHSICRM_TEXTMD.

TABLES:DD04T,LXE_LOG,DDFTX.

DATA:GT_DD04T TYPE TABLE OF DD04T,
     GW_DD04T LIKE LINE OF GT_DD04T,
     GS_DD04T LIKE LINE OF GT_DD04T,"数据元素多语言描述
     GT_LXE_LOG TYPE TABLE OF LXE_LOG,
     GW_LXE_LOG LIKE LINE OF GT_LXE_LOG,
     GS_LXE_LOG LIKE LINE OF GT_LXE_LOG,
     GT_DDFTX TYPE TABLE OF DDFTX,
     GW_DDFTX LIKE LINE OF GT_DDFTX,
     GS_DDFTX LIKE LINE OF GT_DDFTX.



SELECTION-SCREEN:BEGIN OF BLOCK BLK01 WITH FRAME TITLE TEXT-001.
PARAMETERS:P_TBMA TYPE CRMTABLES-TABNAME NO-DISPLAY, "RSRD1-TBMA_VAL,
           P_FILE LIKE RLGRAP-FILENAME.
SELECTION-SCREEN END OF BLOCK BLK01.

*SELECTION-SCREEN FUNCTION KEY 1.
AT SELECTION-SCREEN ON VALUE-REQUEST FOR P_FILE.
  PERFORM FRM_GET_FILEPATH.


START-OF-SELECTION.
CHECK P_FILE IS NOT INITIAL.
PERFORM PRM_UPLOAD_EXCEL.
PERFORM PRM_UPDATE_TABLE.









*&---------------------------------------------------------------------*
*&      Form  FRM_GET_FILEPATH
*&---------------------------------------------------------------------*
*       text
*----------------------------------------------------------------------*
*  -->  p1        text
*  <--  p2        text
*----------------------------------------------------------------------*
FORM FRM_GET_FILEPATH .
  CALL FUNCTION \'WS_FILENAME_GET\'
    EXPORTING
      MASK             = \',Excel(*.xls),*.XLS,*.XLSX,\'
      TITLE            = \'选择文件\'(100)
    IMPORTING
      FILENAME         = P_FILE
    EXCEPTIONS
      INV_WINSYS       = 1
      NO_BATCH         = 2
      SELECTION_CANCEL = 3
      SELECTION_ERROR  = 4
      OTHERS           = 5.
  IF SY-SUBRC <> 0.
    "      MESSAGE e100(zdev) WITH \'选择文件出错!\'(007).
  ENDIF.
ENDFORM.
*&---------------------------------------------------------------------*
*&      Form  PRM_UPLOAD_EXCEL
*&---------------------------------------------------------------------*
*       text
*----------------------------------------------------------------------*
*  -->  p1        text
*  <--  p2        text
*----------------------------------------------------------------------*
FORM PRM_UPLOAD_EXCEL .
IF P_FILE IS NOT INITIAL.
*将excel数据传入内表
    CALL FUNCTION \'ZALSM_EXCEL_TO_INTERNAL_TABLE\'
      EXPORTING
        FILENAME    = P_FILE
        I_BEGIN_COL = \'1\'
        I_BEGIN_ROW = \'2\'
        I_END_COL   = \'300\'
        I_END_ROW   = \'50000\'
      TABLES
        INTERN      = GT_DD04T.
  ENDIF.
ENDFORM.
*&---------------------------------------------------------------------*
*&      Form  PRM_UPDATE_TABLE
*&---------------------------------------------------------------------*
*       text
*----------------------------------------------------------------------*
*  -->  p1        text
*  <--  p2        text
*----------------------------------------------------------------------*
FORM PRM_UPDATE_TABLE .
  CHECK GT_DD04T[] IS NOT INITIAL.

  LOOP AT GT_DD04T INTO GW_DD04T.
    GS_LXE_LOG-CUSTMNR = \'999999\'.
    CASE GW_DD04T-DDLANGUAGE.
      WHEN \'E\'.
        GS_LXE_LOG-TARGLNG = \'enUS\'.
*      WHEN \'1\'.
*        GS_LXE_LOG-TARGLNG = \'enUS\'.
      WHEN \'I\'.
        GS_LXE_LOG-TARGLNG = \'itIT\'.
      WHEN \'D\'.
        GS_LXE_LOG-TARGLNG = \'deDE\'.
      WHEN \'S\'.
        GS_LXE_LOG-TARGLNG = \'esES\'.
      WHEN \'J\'.
        GS_LXE_LOG-TARGLNG = \'jaJP\'.
      WHEN OTHERS.
        CONTINUE.
    ENDCASE.

    GS_LXE_LOG-OBJTYPE = \'DTEL\'.
    GS_LXE_LOG-OBJNAME = GW_DD04T-ROLLNAME.
    GS_LXE_LOG-UNAME = SY-UNAME.
    GS_LXE_LOG-UDATE = SY-DATUM.
    GS_LXE_LOG-UTIME = SY-UZEIT.
    APPEND GS_LXE_LOG TO GT_LXE_LOG.

    SELECT SINGLE * INTO GS_DDFTX FROM DDFTX
      WHERE TABNAME = GW_DD04T-ROLLNAME
      AND   DDLANGUAGE = \'E\'
      AND   ROLLNAME = GW_DD04T-ROLLNAME.
      IF SY-SUBRC = 0.
        GS_DDFTX-DDLANGUAGE = GW_DD04T-DDLANGUAGE.
        GS_DDFTX-SCRTEXT_S = GW_DD04T-SCRTEXT_S.
        GS_DDFTX-SCRTEXT_M = GW_DD04T-SCRTEXT_S.
        GS_DDFTX-SCRTEXT_L = GW_DD04T-SCRTEXT_S.
        GS_DDFTX-REPTEXT   = GW_DD04T-REPTEXT.
        GS_DDFTX-FIELDTEXT   = GW_DD04T-DDTEXT.
        APPEND GS_DDFTX TO GT_DDFTX.
      ENDIF.

  ENDLOOP.

  MODIFY DD04T FROM TABLE GT_DD04T.
  MODIFY LXE_LOG FROM TABLE GT_LXE_LOG.
  IF GT_DDFTX[] IS NOT INITIAL.
    MODIFY DDFTX FROM TABLE GT_DDFTX.
  ENDIF.
  IF SY-SUBRC = 0.
    MESSAGE \'导入成功\' TYPE \'S\'.
  ELSE.
    MESSAGE \'导入失败\' TYPE \'S\' DISPLAY LIKE \'E\'.
    EXIT.
  ENDIF.
ENDFORM.

2.WDA程序中用TEXT写死的值

   2.1SOTR_EDIT 

可获取单个的文本和KEY值。

  2.2重新进入维护修改值。

  可参考修改SOTR_TEXT

 

3.定义全局的文本,并翻译

使用SOTR_EDIT ,创建文本对象,记录别名,维护对应语言的文本

在使用的地方,直接调用

lv_title cl_wd_utilities=>get_otr_text_by_alias\'ZWDA/LABEL_TEST\' ).

  

以上是关于WDA 程序文本翻译OTR的主要内容,如果未能解决你的问题,请参考以下文章

PHP 中的 XMPP + OTR 加密

WDA基础九:BusinessGraphics

WDA基础十:OVS搜索帮助的使用

如何将此 JavaScript 代码片段翻译成 Parenscript?

使用意图共享后,片段未恢复其活动

WDA学习:Application Configuration