Files
vfp_roaauto/COMUN/programe/locale_genmenu.prg

109 lines
3.3 KiB
Plaintext

* Program: _LOCALE_GENMENU.PRG
* Description: Loader to GenMenu.prg to adjust PROMPT and MESSAGE clauses for Localization.
* Created: 02/16/2004
* Developer: Gregory L Reichert
* Copyright: Copyright (c) 2004 GLR software
*------------------------------------------------------------
*--------------------------------------------
* Setup instructions.
* 1. From the main menu, Open the Options dialogs.
* 2. Click the "File Locations" tab.
* 3. Locate the "Menu Builder" item in the list.
* 4. Doble-Click the "Menu Builder" item.
* 5. Change the file reference to point to this file.
* 6. Click the "Save as Default" button.
* 7. Click the "Ok" button.
*--------------------------------------------
PARAMETER m.projdbf, m.recno
LOCAL cResult, cPath, cc
cPath = SET("Path")
cc = HOME()+";&cPath"
SET PATH TO &cc
cResult = GenMenu( (m.projdbf), (m.recno) )
SET PATH TO &cPath
LOCAL MenuName, cMenu
LOCAL lcLocaleObjName
lcLocaleObjName = [goLocale]
*--------------------------------------------
* Get menu name
*--------------------------------------------
USE IN (SELECT("qMenu"))
USE (m.projdbf) AGAIN IN 0 NOUPDATE ALIAS qMenu
SELECT qMenu
GOTO (m.recno)
m.MenuName = qMenu.NAME
USE IN qMenu
*--------------------------------------------
* If there is a "*:Locale=Yes" in the Procedure section of
* the "View->General Options", setup for translations.
*--------------------------------------------
SELECT 0
lcMenuFile = LEFT(m.projdbf, RAT('\', m.projdbf)) + m.MenuName
USE (m.lcMenuFile) AGAIN NOUPDATE ALIAS qMenu
GOTO TOP
m.Proc = ALLTRIM(qMenu.procedure)
USE
IF ATC("*:Locale=Yes",m.Proc)>0
lcMenuFile = STRTRAN(LOWER(lcMenuFile),".mnx",".mpr")
CREATE CURSOR qMenu (LINE c(250))
APPEND FROM (lcMenuFile) TYPE SDF
LOCAL cLine, i, cMenu
cMenu = ""
SCAN ALL
cLine = ALLTRIM(qMenu.LINE)
*%% Gregory L Reichert 02/16/2004 LOCALE_GENMENU.PRG : 800 : BUGBUG : Making direct reference to oLocale. It may be on Form or _SCREEN at runtime.
DO CASE
CASE ATCC([DEFINE PAD ],cLine)>0 AND ATCC([PROMPT "],cLine)>0
i = ATCC([PROMPT "],cLine)+7
cLine = STUFFC(cLine,i,1, lcLocaleObjName + [.getString("])
i = RATC([" COLOR ],cLine,1)
cLine = STUFFC(cLine,i,1,[")])
CASE ATCC([DEFINE BAR ],cLine)>0 AND ATCC([PROMPT "],cLine)>0
i = ATCC([PROMPT "],cLine)+7
cLine = STUFFC(cLine,i,1,lcLocaleObjName + [.getString("])
i = RATC(["],cLine,1)
cLine = STUFFC(cLine,i,1,[")])
CASE ATCC([MESSAGE "],cLine)>0
i = ATCC([MESSAGE "],cLine)+8
cLine = STUFFC(cLine,i,1,lcLocaleObjName + [.getString("])
i = ratc(["],cLine,1)
cLine = STUFFC(cLine,i,1,[")])
CASE ATCC([TITLE "],cLine)>0
i = ATCC([TITLE "],cLine)+8
cLine = STUFFC(cLine,i,1,lcLocaleObjName + [.getString("])
i = ratc(["],cLine,1)
cLine = STUFFC(cLine,i,1,[")])
CASE ATCC([FOOTER "],cLine)>0
i = ATCC([FOOTER "],cLine)+8
cLine = STUFFC(cLine,i,1,lcLocaleObjName + [.getString("])
i = ratc(["],cLine,1)
cLine = STUFFC(cLine,i,1,[")])
ENDCASE
cLine = STRTRAN(cLine,"rat(","rat_c(")
cLine = STRTRAN(cLine,"ratc(","ratcc(")
cLine = STRTRAN(cLine,"at(","at_c(")
cLine = STRTRAN(cLine,"atc(","atcc(")
cMenu = cMenu + cLine + CHR(13)+CHR(10)
ENDSCAN
STRTOFILE(cMenu, lcMenuFile, .F.)
USE IN qMenu
ENDIF
RETURN m.cResult