109 lines
3.3 KiB
Plaintext
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
|
|
|
|
|