Kbase P94513: Unable to translate dynamic SDB search field label
Autor |
  Progress Software Corporation - Progress |
Acesso |
  Público |
Publicação |
  10/16/2008 |
|
Status: Unverified
FACT(s) (Environment):
Progress 9.1D
Dynamics
SYMPTOM(s):
Unable to translate dynamic SDB search field label
The search field doesn't show up in the translation window to allow you to add a translation
Manually adding a translation doesn't solve the problem, the search field is still not translated.
CAUSE:
This is a known issue being investigated by Development
FIX:
In the Dynamic SDB custom super procedure edit the InitializeObject internal procedure as follows:
PROCEDURE InitializeObject:
/*------------------------------------------------------------------------------
Purpose:
Parameters:
Notes:
------------------------------------------------------------------------------*/
DEFINE VARIABLE hFrame AS HANDLE NO-UNDO.
DEFINE VARIABLE hLiteralHandle AS HANDLE NO-UNDO.
DEFINE VARIABLE hWidget AS HANDLE NO-UNDO.
DEFINE VARIABLE hwidgetGroup AS HANDLE NO-UNDO.
DEFINE VARIABLE cObjectName AS CHARACTER NO-UNDO.
DEFINE VARIABLE cOriginalLabel AS CHARACTER NO-UNDO.
DEFINE VARIABLE cTranslationLabel AS CHARACTER NO-UNDO INIT ?.
DEFINE VARIABLE cOriginalTooltip AS CHARACTER NO-UNDO.
DEFINE VARIABLE cTranslationTooltip AS CHARACTER NO-UNDO.
RUN SUPER.
hFrame = DYNAMIC-FUNCTION("getContainerHandle":U IN TARGET-PROCEDURE).
ASSIGN
hwidgetGroup = hFrame:HANDLE
hwidgetGroup = hwidgetGroup:FIRST-CHILD
hWidget = hwidgetGroup:FIRST-CHILD
.
literal-widget-walk:
REPEAT WHILE VALID-HANDLE (hWidget):
IF hWidget:TYPE <> "fill-in":U THEN
DO:
ASSIGN hWidget = hWidget:NEXT-SIBLING.
NEXT literal-widget-walk.
END.
IF CAN-QUERY(hWidget, "SIDE-LABEL-HANDLE":U) AND hWidget:SIDE-LABEL-HANDLE <> ? THEN DO:
ASSIGN
hLiteralHandle = hWidget:SIDE-LABEL-HANDLE
hLiteralHandle:NAME = "BrowseSearchFieldLabel"
.
LEAVE literal-widget-walk.
END.
hWidget = hWidget:NEXT-SIBLING.
END.
cObjectName = DYNAMIC-FUNCTION('getObjectName':U IN TARGET-PROCEDURE).
RUN getTranslation IN gshTranslationManager (INPUT 0, /*0 for the login language */
INPUT cObjectName,
INPUT "TEXT":U,
INPUT hLiteralHandle:NAME,
INPUT 0,
OUTPUT cOriginalLabel,
OUTPUT cTranslationLabel,
OUTPUT cOriginalTooltip,
OUTPUT cTranslationTooltip).
hLiteralHandle:SCREEN-VALUE = IF cTranslationLabel <> '' THEN cTranslationLabel ELSE hLiteralHandle:SCREEN-VALUE.
END PROCEDURE.