Consultor Eletrônico



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.