Files
harbour-core/harbour/doc/es/hb_apiln.txt
Alejandro de Garate 5652b54f48 CHANGELOG: 2004-05-28 01:18 UTC-0400 Alejandro de Garate <alex_degarate@hotmail.com>
2004-05-25 22:37 UTC-0400 Alejandro de Garate <alex_degarate@hotmail.com>

  + doc/es/codestyl.txt
    + Added code style document file

  + doc/es/hb_apiln.txt
    + Added Lang API Document

  + doc/es/hb_vm.txt
    + Added VM API Document
2004-05-28 05:17:36 +00:00

628 lines
20 KiB
Plaintext
Raw Blame History

This file contains invisible Unicode characters
This file contains invisible Unicode characters that are indistinguishable to humans but may be processed differently by a computer. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.
This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.
/*
* $Id$
*/
/*
* Las siguientes partes son derechos adquiridos de sus autores individuales.
* www - http://www.harbour-project.org
*
* Copyright 2003 Alejandro de G rate <alex_degarate@hotmail.com>
* Documentaci¢n en Espa¤ol de:
* Readme, Archivo de cabecera para la API de Idiomas
* hb_langRegister(), hb_langDeRegister(), hb_langFind(), hb_langFindPos(),
* hb_langSelect(), hb_langSelectID(), hb_langDGetItem(), hb_langID(),
* hb_langName(), hb_langDGetErrorDesc(), HB_LANG_REQUEST()
*
* Copyright 1999 Victor Szakats <info@szelvesz.hu>
* Header file for the Language API
*
* Vea doc/license.txt por los trminos de la licencia.
*
*/
/* $DOC$
* $FUNCNAME$
* Idiomas Soportados
* $CATEGORY$
* Documentaci¢n
* $ONELINER$
* Lame con las caracter¡sticas del manejo de Idiomas en Harbour
* $DESCRIPTION$
* Introducci¢n
* El m¢dulo de idiomas esta compuesto por una estructura de items que
* permite el uso de distintos Idiomas con Harbour de una forma
* unificada. Actualmente se definen un m ximo de 64 Idiomas.
* #define HB_LANG_MAX_ 64 // en ../source/rtl/langapi.c
*
* Se define tambin un array que contiene los idiomas soportados.
* static PHB_LANG s_langList[ HB_LANG_MAX_ ];
*
* Todos los idiomas comparten una estructura com£n que facilita la
* portabilidad. Esta estructura es del tipo est tica (s_lang) y esta
* definida dentro de los archivos correspondientes a cada idioma, que
* se encuentran en el subdirectorio ../source/rtl/lang/*.c
* Por ejemplo ./source/rtl/lang/msges.c // Espa¤ol
*
* Esta estructura esta definida como un array (pItemList[]) de punteros
* a void y consta actualmente de 116 elementos (n£meros y cadenas de
* caracteres) divididos en unidades tem ticas: A, B, C, D, E, F
* typedef struct _HB_LANG
* {
* void * pItemList[ HB_LANG_ITEM_MAX_ ];
* } HB_LANG, * PHB_LANG, * HB_LANG_PTR;
*
* A. Identificador de Idioma [Offset 0-5]
* --------------------------
* [0] Dos caracteres ISO que caracterizan al idioma. Por ejemplo "ES"
* identifica al idioma espa¤ol.
* [1] El nombre del Idioma en Ingls. Por ejemplo "Spanish".
* [2] El nombre del Idioma en su lengua nativa. Por ejemplo "Espa¤ol"
* [3] Identificaci¢n seg£n la RFC. Por ejemplo "ES"
* [4] P gina de C¢digos igual a las usadas en DOS y Windows.
* Por ejemplo 850, 437, etc.
* [5] N£mero de la Versi¢n en uso. Por ejemplo 1.5
*
*
* B. Nombre de meses [Offset 6-17]: "Enero", "Febrero", etc.
* ------------------
*
* C. Nombre de los d¡as [Offset 18-24]: "Domingo", "Lunes", etc.
* ---------------------
*
* D. Mensajes de naci¢n (natmsg) compatibles con Clipper [Offset 25-37]
* ---------------------
*
* E. Mensajes de error
* --------------------
* - Nombre con la descripci¢n de errores [Offset 38-88]:
* Por ejemplo: "Error de argumento"
*
* - Errores internos [Offset 89-111]:
* Por ejemplo: "hb_xgrab no puede asignar memoria"
*
* F. Diversos textos [Offset 112-115].
* ------------------
* Cada uno de estos elementos es accedido por su posici¢n en el array.
*
* Se define una macro para publicar un idioma tanto a nivel de C como
* de Harbour.
* #define HB_LANG_ANNOUNCE( id ) HB_FUNC( HB_LANG_##id ) {}
*
*
* Idioma por defecto
* ------------------
* Por defecto Harbour siempre enlaza el m¢dulo de Idioma Ingls.
* Para setear un m¢dulo de Idioma por defecto a ser usado por Harbour
* se debe definir en el archivo ../include/hbsetup.h la macro
* HB_LANG_DEFAULT a un identificador de lenguaje v lido.
*
* (Notese que este puede tambin estar bajo la forma de una macro).
* #ifndef HB_LANG_DEFAULT
* #define HB_LANG_DEFAULT EN
* #endif
*
* Funciones
* ---------
* Harbour implementa el uso de distintos Idiomas a travs de funciones
* de bajo nivel en lenguaje C. Las cuales se describen m s abajo
* Estas funciones permiten acceder a estructuras que soportan los
* distintos datos que componen cada Idioma, generalmente pasando
* punteros a esas estructuras.
*
* /* Manejo de lista de lenguajes */
*
* extern BOOL hb_langRegister ( PHB_LANG lang );
* extern BOOL hb_langDeRegister ( char * pszID );
* extern int hb_langFindPos ( char * pszID )
* extern PHB_LANG hb_langFind ( char * pszID );
*
*
* /* Selecci¢n del lenguaje por defecto y b£squeda de datos */
*
* extern PHB_LANG hb_langSelect ( PHB_LANG lang );
* extern char * hb_langSelectID ( char * pszID );
* extern void * hb_langDGetItem ( int iIndex );
* extern char * hb_langID ( void );
* extern char * hb_langName ( void );
*
*
* /* Interfaz de Compatibilidad */
*
* extern char * hb_langDGetErrorDesc ( ULONG ulIndex );
*
* $SEEALSO$
* hb_langRegister(), hb_langDeRegister(), hb_langFind(), hb_langFindPos(),
* hb_langSelect(), hb_langSelectID(), hb_langDGetItem(), hb_langID(),
* hb_langName(), hb_langDGetErrorDesc(), HB_LANG_REQUEST()
* $END$
*/
/* $DOC$
* $FUNCNAME$
* hb_langRegister()
* $CATEGORY$
* API de Idiomas
* $ONELINER$
* Registra un Idioma por defecto.
* $SYNTAX$
* C Prototype
*
* #include <hbapilng.h>
* hb_langRegister( PHB_LANG lang ) --> ( BOOL )bResult
* $ARGUMENTS$
* <lang> es un puntero a la estructura del Idioma, que se va a
* registrar como idioma por defecto.
* $RETURNS$
* Retorna el valor l¢gico <bResult> indicando si fu satisfactoria la
* operaci¢n.
* $DESCRIPTION$
* La funci¢n hb_langRegister() es una funci¢n de bajo nivel escrita
* en lenguaje C que permite registrar un idioma por defecto para ser
* usado con Harbour.
* $EXAMPLES$
* HB_LANG_ANNOUNCE( ES );
*
* HB_CALL_ON_STARTUP_BEGIN( hb_lang_Init_ES )
* hb_langRegister( &s_lang );
* HB_CALL_ON_STARTUP_END( hb_lang_Init_ES )
* $STATUS$
* R
* $COMPLIANCE$
* Compatibilidad no es aplicable a las llamadas a la API.
* $FILES$
* El archivo fuente es ../source/rtl/langapi.c
* La librer¡a asociada es lang
* $PLATFORMS$
* Todas
* $SEEALSO$
* hb_langDeRegister, hb_langSelect(), hb_langSelectID()
* $END$
*/
/* $DOC$
* $FUNCNAME$
* hb_langDeRegister()
* $CATEGORY$
* API de Idiomas
* $ONELINER$
* Elimina un Idioma registrado.
* $SYNTAX$
* C Prototype
*
* #include <hbapilng.h>
* hb_langDeRegister( char * pszID ) --> ( BOOL )bResult
* $ARGUMENTS$
* <pszID> Puntero a una cadena terminada con '\0' que contiene la
* identificaci¢n del idioma a ser removido.
* $RETURNS$
* Retorna el valor l¢gico <bResult> indicando si fu satisfactoria la
* operaci¢n.
* $DESCRIPTION$
* La funci¢n hb_langDeRegister() es una funci¢n de bajo nivel en
* lenguaje C que permite eliminar un idioma de una lista para ser
* usado con Harbour.
* Para ello utiliza a la funci¢n hb_langFindPos( pszID ) que devuelve
* la posici¢n en una lista de idiomas (si existe) ¢ el valor -1 si no
* se pudo encontrar. Si se encontr¢ cambia su valor a NULL.
* $EXAMPLES$
* Vea langapi.c
* $STATUS$
* R
* $COMPLIANCE$
* Compatibilidad no es aplicable a las llamadas a la API.
* $FILES$
* El archivo fuente es ../source/rtl/langapi.c
* La librer¡a asociada es lang
* $PLATFORMS$
* Todas
* $SEEALSO$
* hb_langRegister(), hb_langSelect(), hb_langSelectID()
* $END$
*/
/* $DOC$
* $FUNCNAME$
* hb_langFindPos()
* $CATEGORY$
* API de Idiomas
* $ONELINER$
* Busca en una lista de idiomas por un identificador de Lenguaje.
* $SYNTAX$
* C Prototype
*
* #include <hbapilng.h>
* hb_langFindPos( char * pszID ) --> int iPos
* $ARGUMENTS$
* <pszID> Puntero a una cadena terminada con '\0' que contiene la
* identificaci¢n del idioma.
* $RETURNS$
* Retorna <iPos>, la posici¢n dentro de la estructura si existe ¢ -1
* en caso contrario.
* $DESCRIPTION$
* La funci¢n hb_langFindPos() es una funci¢n de bajo nivel en
* lenguaje C que realiza la b£squeda de un identificador de idioma de
* una lista. Para ello compara el par metro <pszID> con la cadena de
* caracteres que se encuentra en la posici¢n HB_LANG_ITEM_ID_ID del
* array pItemList.
* Esta devuelve la posici¢n en una lista de idiomas (si existe) ¢ el
* valor -1 si no se pudo encontrar. Si se encontr¢ cambia su valor a
* NULL.
* $EXAMPLES$
* Vea langapi.c
* $STATUS$
* R
* $COMPLIANCE$
* Compatibilidad no es aplicable a las llamadas a la API.
* $FILES$
* El archivo fuente es ../source/rtl/langapi.c
* La librer¡a asociada es lang
* $PLATFORMS$
* Todas
* $SEEALSO$
* hb_langFind(), hb_langSelectID()
* $END$
*/
/* $DOC$
* $FUNCNAME$
* hb_langFind()
* $CATEGORY$
* API de Idiomas
* $ONELINER$
* Busca en la lista de idiomas por un identificador de Lenguaje.
* $SYNTAX$
* C Prototype
*
* #include <hbapilng.h>
* hb_langFind( char * pszID ) --> ( PHB_LANG )pResult
* $ARGUMENTS$
* <pszID> Puntero a una cadena terminada con '\0' que contiene la
* identificaci¢n del idioma.
* $RETURNS$
* Retorna un puntero <pResult> a la estructura del idioma solicitado
* si lo encuentra ¢ NULL en caso contrario.
* $DESCRIPTION$
* La funci¢n hb_langFind() es una funci¢n de bajo nivel en lenguaje C
* que realiza la b£squeda de un identificador de idioma de una lista.
* Para ello utiliza a la funci¢n hb_langFindPos( pszID ) que devuelve
* la posici¢n en una lista de idiomas (si existe) ¢ el valor -1 si no
* se pudo encontrar.
* Si se encontr¢ hb_langFind() devuelve un puntero a esa estructura
* ¢ NULL si no se encontr¢.
* $EXAMPLES$
* Vea langapi.c
* $STATUS$
* R
* $COMPLIANCE$
* Compatibilidad no es aplicable a las llamadas a la API.
* $FILES$
* El archivo fuente es ../source/rtl/langapi.c
* La librer¡a asociada es lang
* $PLATFORMS$
* Todas
* $SEEALSO$
* hb_langFindPos(), hb_langID(), hb_langSelectID()
* $END$
*/
/* $DOC$
* $FUNCNAME$
* hb_langSelect()
* $CATEGORY$
* API de Idiomas
* $ONELINER$
* Selecciona un m¢dulo de mensajes espec¡fico a una nacionalidad.
* $SYNTAX$
* C Prototype
*
* #include <hbapilng.h>
* hb_langSelect( PHB_LANG lang ) --> ( PHB_LANG )pResult
* $ARGUMENTS$
* <lang> es un puntero a la estructura del nuevo Idioma que se esta
* tratando de seleccionar.
* $RETURNS$
* Retorna un puntero <pResult> a la estructura del Idioma actualmente
* en uso, antes de establecer el nuevo idioma solicitado .
* $DESCRIPTION$
* La funci¢n hb_langSelect() es una funci¢n de bajo nivel en lenguaje
* C que establece un nuevo idioma para su uso a travs del pasaje de
* un puntero a la estructura del nuevo Idioma. Si el puntero no es
* v lido la funci¢n no hace nada.
* $EXAMPLES$
* Vea langapi.c
* $STATUS$
* R
* $COMPLIANCE$
* Compatibilidad no es aplicable a las llamadas a la API.
* $FILES$
* El archivo fuente es ../source/rtl/langapi.c
* La librer¡a asociada es lang
* $PLATFORMS$
* Todas
* $SEEALSO$
* hb_langSelectID(), hb_langID(), hb_langRegister()
* $END$
*/
/* $DOC$
* $FUNCNAME$
* hb_langSelectID()
* $CATEGORY$
* API de Idiomas
* $ONELINER$
* Selecciona un m¢dulo de mensajes correspondiente a un Idioma.
* $SYNTAX$
* C Prototype
*
* #include <hbapilng.h>
* hb_langSelectID( char * pszID ) --> ( char * )pszResult
* $ARGUMENTS$
* <pszID> Puntero a una cadena terminada con '\0' que contiene la
* identificaci¢n del idioma.
* $RETURNS$
*
* $DESCRIPTION$
* La funci¢n
* $EXAMPLES$
* Vea langapi.c
* $STATUS$
* R
* $COMPLIANCE$
* Compatibilidad no es aplicable a las llamadas a la API.
* $FILES$
* El archivo fuente es ../source/rtl/langapi.c
* La librer¡a asociada es lang
* $PLATFORMS$
* Todas
* $SEEALSO$
* hb_langSelect(), hb_langID()
* $END$
*/
/* $DOC$
* $FUNCNAME$
* hb_langDGetItem()
* $CATEGORY$
* API de Idiomas
* $ONELINER$
* Obtiene un elemento del array de items del Idioma.
* $SYNTAX$
* C Prototype
*
* #include <hbapilng.h>
* hb_langDGetItem( int iIndex ) --> ( void * )pResult
* $ARGUMENTS$
* <iIndex> es la posici¢n del elemento en el array del idioma.
* El valor de <iIndex> debe estar comprendido entre 0 y
* HB_LANG_ITEM_MAX_
* $RETURNS$
* Retorna un puntero <pResult> a void, que previo a su uso debe
* hacerse un casting al tipo apropiado. En general a: (char *)
* $DESCRIPTION$
* La funci¢n hb_langDGetItem() es una funci¢n de bajo nivel escrita
* en lenguaje C que devuelve un puntero de uso general con el dato
* solicitado del array de idioma.
* $EXAMPLES$
* Vea langapi.c
* if( s_lang )
* return ( char * ) hb_langDGetItem( HB_LANG_ITEM_BASE_ID +
* HB_LANG_ITEM_ID_ID );
* else
* return NULL;
*
* $STATUS$
* R
* $COMPLIANCE$
* Compatibilidad no es aplicable a las llamadas a la API.
* $FILES$
* El archivo fuente es ../source/rtl/langapi.c
* La librer¡a asociada es lang
* $PLATFORMS$
* Todas
* $SEEALSO$
* hb_langDGetErrorDesc(), hb_langID(), hb_langName()
* $END$
*/
/* $DOC$
* $FUNCNAME$
* hb_langID()
* $CATEGORY$
* API de Idiomas
* $ONELINER$
* Retorna el identificador ISO del idioma en uso.
* $SYNTAX$
* C Prototype
*
* #include <hbapilng.h>
* hb_langID( void ) --> ( char * )pszResult
* $ARGUMENTS$
* Ninguno.
* $RETURNS$
* Retorna un puntero <pszResult> a una cadena de caracteres terminada
* en '\0' con el identificador del idioma en uso.
* $DESCRIPTION$
* La funci¢n hb_langID() es una funci¢n de bajo nivel en lenguaje C
* que devuelve un puntero a una cadena de caracteres correspondiente
* al identificador de 2 caracteres (ISO) del idioma actualmente en
* uso.
* Esta funci¢n es llamada por la funci¢n de Harbour, HB_LANGSELECT()
* $EXAMPLES$
* Vea langapi.c
* HB_FUNC( HB_LANGSELECT )
* {
* hb_retc( hb_langID() );
*
* hb_langSelectID( hb_parc( 1 ) );
* }
*
* $STATUS$
* R
* $COMPLIANCE$
* Compatibilidad no es aplicable a las llamadas a la API.
* $FILES$
* El archivo fuente es ../source/rtl/langapi.c
* La librer¡a asociada es lang
* $PLATFORMS$
* Todas
* $SEEALSO$
* hb_langSelectID(), hb_langName()
* $END$
*/
/* $DOC$
* $FUNCNAME$
* hb_langName()
* $CATEGORY$
* API de Idiomas
* $ONELINER$
* Obtiene informaci¢n sobre el m¢dulo de lenguaje en uso.
* $SYNTAX$
* C Prototype
*
* #include <hbapilng.h>
* hb_langName( void ) --> ( char * )pszResult
* $ARGUMENTS$
* Ninguno.
* $RETURNS$
* Retorna un puntero <pszResult> a una cadena de caracteres terminada
* en '\0' con los datos del idioma actualmente en uso.
* La rutina llamadora debe encargarse de liberar el puntero pszName
* utilizado por esta funci¢n.
* $DESCRIPTION$
* La funci¢n hb_langName() es una funci¢n de bajo nivel en lenguaje
* C que devuelve una cadena de caracteres con los datos del idioma en
* uso en la forma "Harbour Language: %s1 %s2 (%s3)", donde:
*
* %s1 es un puntero a una cadena de caracteres terminada en '\0' que
* contiene el identificador del idioma en uso como resultado de
* la llamada a la funci¢n:
* hb_langDGetItem( HB_LANG_ITEM_ID_ID).
*
* %s2 es un puntero a una cadena de caracteres terminada en '\0' que
* contiene el nombre del idioma en uso (en Ingls) como resultado
* de la llamada a la funci¢n:
* hb_langDGetItem( HB_LANG_ITEM_ID_NAME).
*
* %s3 es un puntero a una cadena de caracteres terminada en '\0' que
* contiene el nombre del idioma en uso (en lengua nativa) como
* resultado de la llamada a la funci¢n:
* hb_langDGetItem( HB_LANG_ITEM_ID_NAMENAT).
*
* Esta funci¢n es llamada por la funci¢n de Harbour HB_LANGNAME(),
* para realizar esta tarea. hb_langName() es meramente informativa.
* $EXAMPLES$
* Vea langapi.c
* HB_FUNC( HB_LANGNAME )
* {
* char * pszName = hb_langName();
* hb_retc( pszName );
* hb_xfree( pszName );
* }
* $STATUS$
* R
* $COMPLIANCE$
* Compatibilidad no es aplicable a las llamadas a la API.
* $FILES$
* El archivo fuente es ../source/rtl/langapi.c
* La librer¡a asociada es lang
* $PLATFORMS$
* Todas
* $SEEALSO$
* hb_langDGetItem()
* $END$
*/
/* $DOC$
* $FUNCNAME$
* hb_langDGetErrorDesc()
* $CATEGORY$
* API de Idiomas
* $ONELINER$
* Obtiene una descripci¢n de error para un ¡ndice del array de idioma.
* $SYNTAX$
* C Prototype
*
* #include <hbapilng.h>
* hb_langDGetErrorDesc( ULONG ulIndex ) --> ( char * )pszResult
* $ARGUMENTS$
* <ulIndex> es la posici¢n en el array del Idioma, como un (offset)
* desplazamiento a partir de HB_LANG_ITEM_BASE_ERRDESC.
* $RETURNS$
* Retorna un puntero <pszResult> a una cadena de caracteres terminada
* en '\0' con la descripci¢n del error solicitado.
* $DESCRIPTION$
* La funci¢n hb_langDGetErrorDesc() es una funci¢n de bajo nivel en
* lenguaje C que devuelve la descripci¢n del error solicitado,
* correspondiente a un valor numrico.
* La posici¢n del elemento que contiene la descripci¢n del error se
* calcula sumando a la macro HB_LANG_ITEM_BASE_ERRDESC el valor de
* <ulIndex>.
* La descripci¢n puede correponder a un error interno de Harbour ¢ a
* uno externo.
* $EXAMPLES$
* Vea langapi.c
* $STATUS$
* R
* $COMPLIANCE$
* Compatibilidad no es aplicable a las llamadas a la API.
* $FILES$
* El archivo fuente es ../source/rtl/langapi.c
* La librer¡a asociada es lang
* $PLATFORMS$
* Todas
* $SEEALSO$
* hb_langDGetItem()
* $END$
*/
/* $DOC$
* $FUNCNAME$
* HB_LANG_REQUEST()
* $CATEGORY$
* API de Idiomas
* $ONELINER$
* Pseudofunci¢n para usar un identificador de idioma, en forma de macro
* $SYNTAX$
* C Prototype (macro definition)
*
* #include <hbapilng.h>
* HB_LANG_REQUEST( id ) --> <see HB_LANG_REQUEST_( id )>
*
* // This hack is needed to force preprocessing if id is also a macro
* #define HB_LANG_REQUEST( id ) HB_LANG_REQUEST_( id )
* #define HB_LANG_REQUEST_( id ) extern HB_FUNC( HB_LANG_##id ); \
* void hb_lang_ForceLink( void ) \
* { \
* HB_FUNCNAME( HB_LANG_##id )(); \
* }
*
* // Macro to publish a specific language module, for both C
* // and Harbour level
* #define HB_LANG_ANNOUNCE( id ) HB_FUNC( HB_LANG_##id ) {}
* $ARGUMENTS$
* <id> Es el identificador del idioma a establecer
* $RETURNS$
* Nada.
* $DESCRIPTION$
* Este truco es necesario para forzar un pre-procesamiento si id es
* tambin una macro.
* La macro termina ejecutando la funci¢n HB_FUNC( HB_LANG_##id ) para
* el identificador <id>.
* $EXAMPLES$
* Vea langapi.c, hbapilng.h
* $STATUS$
* R
* $COMPLIANCE$
* Compatibilidad no es aplicable a las llamadas a la API.
* $FILES$
* El archivo de cabecera es ../include/hbapilng.h
* $PLATFORMS$
* Todas
* $SEEALSO$
* HB_LANG_ANNOUNCE(), HB_LANG_REQUEST_()
* $END$
*/