IF APP="FRENCH" @2,1 SAY"Nom du Client:" ELSE @2,1 SAY"Client's Name:" ENDIF @$,$ GET m.NAME IF APP="FRENCH" @3,1 SAY"Adresse :" ELSE @3,1 SAY"Address :" ENDIF READ2. I could...;
IF APP="FRENCH" @2,1 SAY"Nom du Client:" GET m.NAME @3,1 SAY"Adresse :" GET m.ADR ELSE @2,1 SAY"Client's Name:" GET m.NAME @3,1 SAY"Address :" GET m.ADRE ENDIF READ3. I could...;
IF APP="FRENCH" DO GET_FRENCH && Get separate .PRG with all the get's ELSE DO GET_ENGLISH ENDIF READ4. I could have one LC.dBF (Language Code) with several fields, one per language;
Code French English ========= ============================ ============================== CLTNAME Nom du Client: Client's Name: CLTADDR Adresse : Address : ERRMESS1 Ce champ ne peut etre vide! This field must be filled @2,1 SAY FREP("CLTNAME") GET m.NAME @3,1 SAY FREP("CLTADDR") GET m.ADRE READ PROCEDURE FREP && Field Replacement PARAMETERS FLDCODE SELECT LC && we assume LC is opened/ordered by Code IF SEEK(FLDCODE,"LC") WFLD=IIF(APP="FRENCH",LC.FRENCH,LC.ENGLISH) ELSE WFLD="???" ENDIF RETURN5. I could have two dBF, one for each language.
LFC.dBF ------- Code Desc ========= ============================ CLTNAME Nom du Client: CLTADDR Adresse : ERRMESS1 Ce champ ne peut etre vide! LEC.dBF ------- Code Desc ========= ============================ CLTNAME Client's Name: CLTADDR Address : ERRMESS1 This field must be filled @2,1 SAY FREP("CLTNAME") GET m.NAME @3,1 SAY FREP("CLTADDR") GET m.ADRE READ PROCEDURE FREP && Field Replacement PARAMETERS FLDCODE IF APP="FRENCH" SELECT LFC && we assume LC is openend/ordered by Code ELSE SELECT LEC ENDIF SEEK FLDCODE RETURN IIF(FOUND(),DESC,"????")5. And I could obviously make two separate version.