402 lines
14 KiB
Plaintext
402 lines
14 KiB
Plaintext
/*
|
||
* $Id$
|
||
*/
|
||
|
||
/*
|
||
* The following parts are Copyright of the individual authors.
|
||
* www - http://www.harbour-project.org
|
||
*
|
||
* Copyright 2000 Luiz Rafael Culik <culik@sl.conex.net>
|
||
* Documentation for: HB_LANGNAME(), HB_LANGSELECT()
|
||
*
|
||
* Copyright 2004 Chen Kedem <niki@actcom.co.il>
|
||
* Documentation for: HB_LANGERRMSG(),HB_LANGMESSAGE(),HB_SETCODEPAGE(),
|
||
* HB_TRANSLATE()
|
||
*
|
||
* See doc/license.txt for licensing terms.
|
||
*
|
||
*/
|
||
|
||
|
||
/* $DOC$
|
||
* $FUNCNAME$
|
||
* HB_LANGERRMSG()
|
||
* $CATEGORY$
|
||
* Nation
|
||
* $ONELINER$
|
||
* Description of an error code using current language
|
||
* $SYNTAX$
|
||
* HB_LANGERRMSG( <nErrorCode> ) --> cErrorMessage
|
||
* $ARGUMENTS$
|
||
* <nErrorCode> is one of the generic error codes (EG_...) defined
|
||
* in include/error.ch
|
||
* $RETURNS$
|
||
* HB_LANGERRMSG() return the error message string represented by
|
||
* the code <nErrorCode>.
|
||
* $DESCRIPTION$
|
||
* This function return the error message associated with an error
|
||
* code using the current language selected.
|
||
* $EXAMPLES$
|
||
* #include "error.ch"
|
||
* REQUEST HB_LANG_ES
|
||
* FUNCTION Main()
|
||
* // English: Argument error
|
||
* ? "English:", HB_LANGERRMSG( EG_ARG )
|
||
* HB_LANGSELECT( "ES" )
|
||
* // Spanish: Error de argumento
|
||
* ? "Spanish:", HB_LANGERRMSG( EG_ARG )
|
||
* RETURN NIL
|
||
* $STATUS$
|
||
* R
|
||
* $COMPLIANCE$
|
||
* This function is a Harbour Extension
|
||
* $PLATFORMS$
|
||
* All
|
||
* $FILES$
|
||
* Library are rtl, lang
|
||
* Header is error.ch
|
||
* $SEEALSO$
|
||
* HB_LANGSELECT(),NATIONMSG()
|
||
* $END$
|
||
*/
|
||
|
||
/* $DOC$
|
||
* $FUNCNAME$
|
||
* HB_LANGMESSAGE()
|
||
* $CATEGORY$
|
||
* Nation
|
||
* $ONELINER$
|
||
* Returns international strings messages and errors
|
||
* $SYNTAX$
|
||
* HB_LANGMESSAGE( <nMsg> ) --> cMessage
|
||
* $ARGUMENTS$
|
||
* <nMsg> is the message number to get.
|
||
* $RETURNS$
|
||
* HB_LANGMESSAGE() return the text associated with the code <nMsg>.
|
||
* $DESCRIPTION$
|
||
* HB_LANGMESSAGE() is similar to NATIONMSG() but give access to the
|
||
* whole list of language messages: Day and month names, generic error
|
||
* messages, internal errors, and others...
|
||
*
|
||
* Use the header file hblang.ch for a list of base values for <nMsg>.
|
||
* $EXAMPLES$
|
||
* #include "hblang.ch"
|
||
* REQUEST HB_LANG_ES
|
||
* FUNCTION Main()
|
||
* // English: Monday
|
||
* ? "English:", HB_LANGMESSAGE( HB_LANG_ITEM_BASE_DAY + 1 )
|
||
* HB_LANGSELECT( "ES" )
|
||
* // Spanish: Lunes
|
||
* ? "Spanish:", HB_LANGMESSAGE( HB_LANG_ITEM_BASE_DAY + 1 )
|
||
* RETURN NIL
|
||
* $STATUS$
|
||
* R
|
||
* $COMPLIANCE$
|
||
* This function is a Harbour Extension
|
||
* $PLATFORMS$
|
||
* All
|
||
* $FILES$
|
||
* Library are rtl, lang
|
||
* Header is hblang.ch
|
||
* $SEEALSO$
|
||
* HB_LANGSELECT(),NATIONMSG(),REQUEST
|
||
* $END$
|
||
*/
|
||
|
||
/* $DOC$
|
||
* $FUNCNAME$
|
||
* HB_LANGNAME()
|
||
* $CATEGORY$
|
||
* Nation
|
||
* $ONELINER$
|
||
* Return the name of the current language module in use
|
||
* $SYNTAX$
|
||
* HB_LANGNAME() --> cLangName
|
||
* $ARGUMENTS$
|
||
* None.
|
||
* $RETURNS$
|
||
* <cLangName> Name of the current language in use
|
||
* $DESCRIPTION$
|
||
* This function return the current name of the language module in use.
|
||
* $EXAMPLES$
|
||
* REQUEST HB_LANG_PT
|
||
* REQUEST HB_LANG_RO
|
||
* REQUEST HB_LANG_ES
|
||
* FUNCTION Main()
|
||
* HB_LANGSELECT( 'PT' ) // Default language is now Portuguese
|
||
* ? CDOW( DATE() ) //Segunda-feira
|
||
* ? 'Current language is ", HB_LANGNAME() // Portuguese
|
||
* ? 'Old language id selected is ", HB_LANGSELECT() // PT
|
||
* HB_LANGSELECT( 'RO' ) // Default language is now Romanian
|
||
* ? CMONTH( DATE() ) // Mai
|
||
* ? 'Old language id selected is ",HB_LANGSELECT() // RO
|
||
* HB_LANGSELECT( 'ES' ) // Default language is now Spanish
|
||
* ? 'Current language is ",HB_LANGNAME() // Spanish
|
||
* ? CMONTH( DATE() ) // Mayo
|
||
* ? CDOW( DATE() ) // Lunes
|
||
* RETURN NIL
|
||
* $TESTS$
|
||
* See tests/langapi.prg, tests/langmsg.prg
|
||
* $STATUS$
|
||
* R
|
||
* $COMPLIANCE$
|
||
* This function is a Harbour Extension
|
||
* $PLATFORMS$
|
||
* All
|
||
* $FILES$
|
||
* Library are rtl, lang
|
||
* $SEEALSO$
|
||
* HB_LANGSELECT(),NATIONMSG()
|
||
* $END$
|
||
*/
|
||
|
||
/* $DOC$
|
||
* $FUNCNAME$
|
||
* HB_LANGSELECT()
|
||
* $CATEGORY$
|
||
* Nation
|
||
* $ONELINER$
|
||
* Select a specific nation message module
|
||
* $SYNTAX$
|
||
* HB_LANGSELECT( [<cNewLang>] ) --> cOldLang
|
||
* $ARGUMENTS$
|
||
* <cNewLang> The optional ID of the country language module.
|
||
* Possible values for <cNewLang> are below as defined in the
|
||
* Lang library, sorted by language.
|
||
*
|
||
* <table>
|
||
* Language Codepage <cNewLang>
|
||
*
|
||
* Bulgarian 866 BG866
|
||
* Bulgarian ISO-8859-5 BGISO
|
||
* Bulgarian Windows-1251 BGWIN
|
||
* Basque 850 EU
|
||
* Catalan 850 CA
|
||
* Chinese Simplified 936 ZHGB
|
||
* Chinese Traditional 950 ZHB5
|
||
* Croatian 852 HR852
|
||
* Croatian ISO-8859-2 HRISO
|
||
* Czech 852 CS852
|
||
* Czech ISO-8859-2 CSISO
|
||
* Czech KAM CSKAM
|
||
* Czech Windows-1250 CSWIN
|
||
* English 437 EN
|
||
* Esperanto 850 EO
|
||
* French 850 FR
|
||
* Galician 850 GL
|
||
* German 850 DE
|
||
* German ANSI ANSI DEWIN
|
||
* Greek 737 EL
|
||
* Greek ANSI Windows-1253 ELWIN
|
||
* Hebrew 862 HE862
|
||
* Hebrew Windows-1255 HEWIN
|
||
* Hungarian 852 HU852
|
||
* Hungarian CWI-2 HUCWI
|
||
* Hungarian ISO-8859-2 HUISO
|
||
* Hungarian Windows-1 HUWIN
|
||
* Icelandic 850 IS850
|
||
* Indonesian 437 ID
|
||
* Italian 437 IT
|
||
* Korean 949 KO
|
||
* Polish 852 PL852
|
||
* Polish ISO-8859-2 PLISO
|
||
* Polish Mozowia PLMAZ
|
||
* Polish Windows-1250 PLWIN
|
||
* Portuguese 850 PT
|
||
* Romanian 852 RO
|
||
* Russian 866 RU866
|
||
* Russian KOI-8 RUKOI8
|
||
* Russian Windows-1251 RUWIN
|
||
* Serbian 852 SR852
|
||
* Serbian ISO-8859-2 SRISO
|
||
* Serbian Windows-1251 SRWIN
|
||
* Slovenian 437 SL437
|
||
* Slovenian 852 SL852
|
||
* Slovenian ISO-8859-2 SLISO
|
||
* Slovenian Windows-1250 SLWIN
|
||
* Spanish 850 ES
|
||
* Spanish ANSI ANSI ESWIN
|
||
* </table>
|
||
* $RETURNS$
|
||
* <cOldLang> The old language indentifier
|
||
* $DESCRIPTION$
|
||
* This function set a default language module for date/month names,
|
||
* internal warnigs, NatMsg messages and internal errors. When a
|
||
* Lang ID is selected all messages will be output with the current
|
||
* language selected until another one is selected or the program ends.
|
||
* The default language is English (cLang == "EN").
|
||
*
|
||
* NOTE: You must REQUEST every language module you intend to use.
|
||
* For example: to use the Russian RU866 language you must add the
|
||
* following to your program: REQUEST HB_LANG_RU866
|
||
* $EXAMPLES$
|
||
* REQUEST HB_LANG_PT
|
||
* REQUEST HB_LANG_RO
|
||
* REQUEST HB_LANG_ES
|
||
* FUNCTION Main()
|
||
* HB_LANGSELECT( 'PT' ) // Default language is now Portuguese
|
||
* ? CDOW( DATE() ) // Segunda-feira
|
||
* ? 'Old language id selected is ", HB_LANGSELECT() // PT
|
||
* HB_LANGSELECT( 'RO' ) // Default language is now Romanian
|
||
* ? CMONTH( DATE() ) // Mai
|
||
* ? 'Old language id selected is ",HB_LANGSELECT() // RO
|
||
* HB_LANGSELECT( 'ES' ) // Default language is now Spanish
|
||
* ? CMONTH( DATE() ) // Mayo
|
||
* ? CDOW( DATE() ) // Lunes
|
||
* RETURN NIL
|
||
* $TESTS$
|
||
* See tests/langapi.prg, tests/langmsg.prg
|
||
* $STATUS$
|
||
* R
|
||
* $COMPLIANCE$
|
||
* This function is a Harbour Extension.
|
||
* $PLATFORMS$
|
||
* All
|
||
* $FILES$
|
||
* Libraty are rtl, lang
|
||
* $SEEALSO$
|
||
* HB_LANGNAME(),HB_SETCODEPAGE(),NATIONMSG(),REQUEST
|
||
* $END$
|
||
*/
|
||
|
||
/* $DOC$
|
||
* $FUNCNAME$
|
||
* HB_SETCODEPAGE()
|
||
* $CATEGORY$
|
||
* Nation
|
||
* $ONELINER$
|
||
* Select the active code page by language ID
|
||
* $SYNTAX$
|
||
* HB_SETCODEPAGE( [<cNewLang>] ) --> cOldLang
|
||
* $ARGUMENTS$
|
||
* <cNewLang> The optional ID of the country language module.
|
||
* Possible values for <cNewLang> are below as defined in the
|
||
* Codepage library, sorted by language.
|
||
*
|
||
* <table>
|
||
* Language Codepage <cNewLang>
|
||
*
|
||
* Bulgarian 866 BG866
|
||
* Bulgarian ISO-8859-5 BGISO
|
||
* Bulgarian Windows-1251 BGWIN
|
||
* English 437 EN
|
||
* German 850 DE
|
||
* German ISO-8859-1 DEWIN
|
||
* Greek 737 EL
|
||
* Greek Windows-1253 ELWIN
|
||
* Hungarian 852 HU852
|
||
* Hungarian ISO-8859-2 HUISO
|
||
* Hungarian Windows-1250 HUWIN
|
||
* Polish 852 PL852
|
||
* Polish ISO-8859-2 PLISO
|
||
* Polish Mozowia PLMAZ
|
||
* Polish Windows-1250 PLWIN
|
||
* Portuguese 850 PT850
|
||
* Portuguese ISO-8859-1 PTISO
|
||
* Russian 866 RU866
|
||
* Russian KOI-8 RUKOI8
|
||
* Russian Windows-1251 RU1251
|
||
* Serbian Windows-1251 SRWIN
|
||
* Slovenian 437 SL437
|
||
* Slovenian 852 SL852
|
||
* Slovenian ISO-8859-2 SLISO
|
||
* Slovenian Windows-1250 SLWIN
|
||
* Spanish 850 ES
|
||
* Spanish ISO-8859-1 ESWIN
|
||
* Spanish Modern ISO-8859-1 ESMWIN
|
||
* </table>
|
||
* $RETURNS$
|
||
* <cOldLang> The old language indentifier
|
||
* $DESCRIPTION$
|
||
* HB_SETCODEPAGE() set the active code page use by Harbour for
|
||
* sorting and comparing strings. The default code page use ASCII
|
||
* order (cLang == "EN").
|
||
*
|
||
* NOTE: You must REQUEST every code page module you intend to use.
|
||
* For example: to use the Russian RU866 code page you must add the
|
||
* following to your program: REQUEST HB_CODEPAGE_RU866
|
||
* $EXAMPLES$
|
||
* REQUEST HB_CODEPAGE_HU852
|
||
* FUNCTION Main()
|
||
* LOCAL cTxt := CHR( 71 ) + " > " + CHR( 144 ) + " is"
|
||
* ? HB_SETCODEPAGE() // EN
|
||
* ? cTxt, CHR( 71 ) > CHR( 144 ) // G > <20> is .F.
|
||
* ? HB_SETCODEPAGE( "HU852" ) // EN
|
||
* ? cTxt, CHR( 71 ) > CHR( 144 ) // G > <20> is .T.
|
||
* ? HB_SETCODEPAGE( "EN" ) // HU852
|
||
* ? cTxt, CHR( 71 ) > CHR( 144 ) // G > <20> is .F.
|
||
* RETURN NIL
|
||
* $STATUS$
|
||
* R
|
||
* $COMPLIANCE$
|
||
* This function is a Harbour Extension.
|
||
*
|
||
* This function is only visible if source/rtl/cdpapi.c was compiled
|
||
* without the HB_CDP_SUPPORT_OFF flag.
|
||
* $PLATFORMS$
|
||
* All
|
||
* $FILES$
|
||
* Libraty are rtl, codepage
|
||
* $SEEALSO$
|
||
* HB_LANGNAME(),HB_LANGSELECT(),HB_TRANSLATE(),NATIONMSG(),REQUEST
|
||
* $END$
|
||
*/
|
||
|
||
/* $DOC$
|
||
* $FUNCNAME$
|
||
* HB_TRANSLATE()
|
||
* $CATEGORY$
|
||
* Nation
|
||
* $ONELINER$
|
||
* Translate a string from one code page to the other
|
||
* $SYNTAX$
|
||
* HB_TRANSLATE( <cSrcText>, [<cPageFrom>], [<cPageTo>] ) --> cDstText
|
||
* $ARGUMENTS$
|
||
* <cSrcText> Is the source string to translate.
|
||
*
|
||
* <cPageFrom> Is the optional character code page ID of the source
|
||
* string. If not specified, the default code page is used.
|
||
*
|
||
* <cPageTo> Is the optional character code page ID of the destination
|
||
* string. If not specified, the default code page is used.
|
||
* $RETURNS$
|
||
* HB_TRANSLATE() return destination string converted from the source
|
||
* string.
|
||
* $DESCRIPTION$
|
||
* HB_TRANSLATE() try to convert a source string from one code page
|
||
* into the other. If a code page ID is not recognized, or not linked
|
||
* in, the default code page is used. HB_TRANSLATE() is used usually
|
||
* to convert between the Dos and the Windows code pages of the same
|
||
* language.
|
||
*
|
||
* NOTE: If the source code page and target code page does not have
|
||
* the same number of characters, a translation can not be done and
|
||
* the destination string is a copy of the source string.
|
||
*
|
||
* NOTE: You must REQUEST every code page module you intend to use.
|
||
* For example: to use the Russian RU866 code page you must add the
|
||
* following to your program: REQUEST HB_CODEPAGE_RU866
|
||
* $EXAMPLES$
|
||
* REQUEST HB_CODEPAGE_DE
|
||
* REQUEST HB_CODEPAGE_DEWIN
|
||
* FUNCTION Main()
|
||
* LOCAL cTxt := "A" + CHR( 142 ) + "BC"
|
||
* ? "German 850 text:", cTxt
|
||
* ? "German ANSI text:", HB_TRANSLATE( cTxt, "DE", "DEWIN" )
|
||
* RETURN NIL
|
||
* $STATUS$
|
||
* R
|
||
* $COMPLIANCE$
|
||
* This function is a Harbour Extension.
|
||
*
|
||
* This function is only visible if source/rtl/cdpapi.c was compiled
|
||
* without the HB_CDP_SUPPORT_OFF flag.
|
||
* $PLATFORMS$
|
||
* All
|
||
* $FILES$
|
||
* Libraty are rtl, codepage
|
||
* $SEEALSO$
|
||
* HB_LANGSELECT(),HB_SETCODEPAGE(),NATIONMSG(),REQUEST
|
||
* $END$
|
||
*/
|