In order for this site to work correctly we need to store a small file (called a cookie) on your computer. Most every site in the world does this, however since the 25th of May 2011, by law we have to get your permission first. Please abandon the forum if you disagree.

Para que este foro funcione correctamente es necesario guardar un pequeño fichero (llamado cookie) en su ordenador. La mayoría de los sitios de Internet lo hacen, no obstante desde el 25 de Marzo de 2011 y por ley, necesitamos de su permiso con antelación. Abandone este foro si no está conforme.

documentacion

Foro público de Xailer en español
Responder
Avatar de Usuario
jfgimenez
Site Admin
Mensajes: 5718
Registrado: Lun Abr 06, 2015 8:48 pm
Contactar:

documentacion

Mensaje por jfgimenez »

Ramón,
> Donde puedo hallar informacion acerca de STRINGTABLE?
En la documentación de MS y en MSDN
> STRINGTABLE LANGUAGE 0,0 <---- que es el 0, 0?
> {
> 9 "English" <---- por que empieza en
> 9?
> 10 "Español"
> }
No es que empiece en 9, sino que para MS el 9 es el código del inglés, y el
10 el del español. Otros idiomas tienen otros códigos. P.ej., el IDE tiene
esta tabla de idiomas:
STRINGTABLE LANGUAGE 0,0
{
3 "Català"
7 "Deutsch"
9 "English"
10 "Español"
12 "Français"
16 "Italiano"
22 "Portuguese (Portugal)"
86 "Galego"
}
> Igual no hallo nada sobre LT() y LT2(), estos pertenecen a Xailer?
Sí, son dos funciones de Xailer para el soporte de múltiples idiomas. La
sintaxis es:
LT( <nStringID> [, <cParam1>... <cParamN> ] )
- <nStringID> es el código de la cadena que se desea
- <cParam1>...<cParamN> son valores de cadena que sustituirán a las
secuencias %N que se encuentren dentro de la cadena de recursos. Es decir,
la cadena de recursos puede contener %1, %2, %3, etc, y serán sustituidos
por los parámetros que se pasen a esta función.
Ejemplo:
Supongamos una cadena de recursos con el código 1000: "Error %1 al abrir
el fichero %2"
Se llamaría así:
LT( 1000, LTrim( Str( DosError() ) ), cFileName )
La función LT2() es exactamente igual que LT(), con la excepción de que
elimina los caracteres & de la cadena. Es útil en los casos en que
utilizamos la misma cadena para, p.ej., una opción de un menú con shortcut y
el mismo título de la ventana que abre. El IDE hace esto mismo.
> Lo pregunto por que estoy checando el RichPad, pero no entiendo por que
> los valores de los datos que
> contienen empiezan a partir de 1000.
No hay ninguna razón específica para empezar con un valor o con otro.
> Igual quisiera saber si todos los datos de este se incluyen dentro del
> ejecutable o por aparte.
El actual soporte de mútiples idiomas requiere que crees en recursos una
tabla con los idiomas soportados (ver arriba), además de una tabla por cada
uno de esos idiomas. También es muy aconsejable usar un fichero de cabecera
(.ch) con los códigos de las cadenas en forma reconocible. P.ej.:
#define MSG_ERROR_ABRIR_FICHERO 1000
Este fichero de cabecera puedes incluirlo (#include) tanto en el fichero de
recursos donde tienes las cadenas como en los fuentes de tu programa donde
uses esas cadenas. Fíjate en RichPad.
--
Un saludo,
José F. Giménez
José F. Giménez
[Equipo de Xailer / Xailer team]
http://www.xailer.com
http://www.xailer.info
Rafael Cano
Mensajes: 5
Registrado: Jue Jul 14, 2005 11:09 am

documentacion

Mensaje por Rafael Cano »

Los códigos de idioma de windows que yo uso que los saque de Microsoft
no me acuerdo de que parte de la web son estos, aquí­ están a parte de
las agrupaciones generales, las particulares. No es lo mismo el español
de España que el de Bolivia.
Descripción Idioma Código corto Valor Hex Valor Decimal Agrupación
Afrikaans af 0x0436 1078 36
Albanian sq 0x041C 1052 1C
Arabic - United Arab Emirates ar-ae 0x3801 14337 01
Arabic - Bahrain ar-bh 0x3C01 15361 01
Arabic - Algeria ar-dz 0x1401 5121 01
Arabic - Egypt ar-eg 0x0C01 3073 01
Arabic - Iraq ar-iq 0x0801 2049 01
Arabic - Jordan ar-jo 0x2C01 11265 01
Arabic - Kuwait ar-kw 0x3401 13313 01
Arabic - Lebanon ar-lb 0x3001 12289 01
Arabic - Libya ar-ly 0x1001 4097 01
Arabic - Morocco ar-ma 0x1801 6145 01
Arabic - Oman ar-om 0x2001 8193 01
Arabic - Qatar ar-qa 0x4001 16385 01
Arabic - Saudi Arabia ar-sa 0x0401 1025 01
Arabic - Syria ar-sy 0x2801 10241 01
Arabic - Tunisia ar-tn 0x1C01 7169 01
Arabic - Yemen ar-ye 0x2401 9217 01
Armenian hy 0x042B 1067 2B
Azeri - Latin az-az 0x042C 1068 2C
Azeri - Cyrillic az-az 0x082C 2092 2C
Basque eu 0x042D 1069 2D
Belarusian be 0x0423 1059 23
Bulgarian bg 0x0402 1026 02
Catalan ca 0x0403 1027 03
Chinese - China zh-cn 0x0804 2052 04
Chinese - Hong Kong SAR zh-hk 0x0C04 3076 04
Chinese - Macau SAR zh-mo 0x1404 5124 04
Chinese - Singapore zh-sg 0x1004 4100 04
Chinese - Taiwan zh-tw 0x0404 1028 04
Croatian hr 0x041A 1050 1A
Czech cs 0x0405 1029 05
Danish da 0x0406 1030 06
Dutch - The Netherlands nl-nl 0x0413 1043 13
Dutch - Belgium nl-be 0x0813 2067 13
English - Australia en-au 0x0C09 3081 09
English - Belize en-bz 0x2809 10249 09
English - Canada en-ca 0x1009 4105 09
English - Caribbean en-cb 0x2409 9225 09
English - Ireland en-ie 0x1809 6153 09
English - Jamaica en-jm 0x2009 8201 09
English - New Zealand en-nz 0x1409 5129 09
English - Phillippines en-ph 0x3409 13321 09
English - South Africa en-za 0x1C09 7177 09
English - Trinidad en-tt 0x2C09 11273 09
English - United Kingdom en-gb 0x0809 2057 09
English - United States en-us 0x0409 1033 09
Estonian et 0x0425 1061 25
Farsi fa 0x0429 1065 29
Finnish fi 0x040B 1035 0B
Faroese fo 0x0438 1080 38
French - France fr-fr 0x040C 1036 0C
French - Belgium fr-be 0x080C 2060 0C
French - Canada fr-ca 0x0C0C 3084 0C
French - Luxembourg fr-lu 0x140C 5132 0C
French - Switzerland fr-ch 0x100C 4108 0C
Gaelic - Ireland gd-ie 0x083C 2108 3C
Gaelic - Scotland gd 0x043C 1084 3C
German - Germany de-de 0x0407 1031 07
German - Austria de-at 0x0C07 3079 07
German - Liechtenstein de-li 0x1407 5127 07
German - Luxembourg de-lu 0x1007 4103 07
German - Switzerland de-ch 0x0807 2055 07
Greek el 0x0408 1032 08
Hebrew he 0x040D 1037 0D
Hindi hi 0x0439 1081 39
Hungarian hu 0x040E 1038 0E
Icelandic is 0x040F 1039 0F
Indonesian id 0x0421 1057 21
Italian - Italy it-it 0x0410 1040 10
Italian - Switzerland it-ch 0x0810 2064 10
Japanese ja 0x0411 1041 11
Korean ko 0x0412 1042 12
Latvian lv 0x0426 1062 26
Lithuanian lt 0x0427 1063 27
FYRO Macedonian mk 0x042F 1071 2F
Malay - Malaysia ms-my 0x043E 1086 3E
Malay – Brunei ms-bn 0x083E 2110 3E
Maltese mt 0x043A 1082 3A
Marathi mr 0x044E 1102 4E
Norwegian - Bokmí¥l no-no 0x0414 1044 14
Norwegian - Nynorsk no-no 0x0814 2068 14
Polish pl 0x0415 1045 15
Portuguese - Portugal pt-pt 0x0816 2070 16
Portuguese - Brazil pt-br 0x0416 1046 16
Raeto-Romance rm 0x0417 1047 17
Romanian - Romania ro 0x0418 1048 18
Romanian - Moldova ro-mo 0x0818 2072 18
Russian ru 0x0419 1049 19
Russian - Moldova ru-mo 0x0819 2073 19
Sanskrit sa 0x044F 1103 4F
Serbian - Cyrillic sr-sp 0x0C1A 3098 1A
Serbian - Latin sr-sp 0x081A 2074 1A
Setsuana tn 0x0432 1074 32
Slovenian sl 0x0424 1060 24
Slovak sk 0x041B 1051 1B
Sorbian sb 0x042E 1070 2E
Spanish - Spain es-es 0x0C0A 1034 0A
Spanish - Argentina es-ar 0x2C0A 11274 0A
Spanish - Bolivia es-bo 0x400A 16394 0A
Spanish - Chile es-cl 0x340A 13322 0A
Spanish - Colombia es-co 0x240A 9226 0A
Spanish - Costa Rica es-cr 0x140A 5130 0A
Spanish - Dominican Republic es-do 0x1C0A 7178 0A
Spanish - Ecuador es-ec 0x300A 12298 0A
Spanish - Guatemala es-gt 0x100A 4106 0A
Spanish - Honduras es-hn 0x480A 18442 0A
Spanish - Mexico es-mx 0x080A 2058 0A
Spanish - Nicaragua es-ni 0x4C0A 19466 0A
Spanish - Panama es-pa 0x180A 6154 0A
Spanish - Peru es-pe 0x280A 10250 0A
Spanish - Puerto Rico es-pr 0x500A 20490 0A
Spanish - Paraguay es-py 0x3C0A 15370 0A
Spanish - El Salvador es-sv 0x440A 17418 0A
Spanish - Uruguay es-uy 0x380A 14346 0A
Spanish - Venezuela es-ve 0x200A 8202 0A
Sutu sx 0x0430 1072 30
Swahili sw 0x0441 1089 41
Swedish - Sweden sv-se 0x041D 1053 1D
Swedish - Finland sv-fi 0x081D 2077 1D
Tamil ta 0x0449 1097 49
Tatar tt 0X0444 1092 44
Thai th 0x041E 1054 1E
Turkish tr 0x041F 1055 1F
Tsonga ts 0x0431 1073 31
Ukrainian uk 0x0422 1058 22
Urdu ur 0x0420 1056 20
Uzbek - Cyrillic uz-uz 0x0843 2115 43
Uzbek – Latin uz-uz 0x0443 1091 43
Vietnamese vi 0x042A 1066 2A
Xhosa xh 0x0434 1076 34
Yiddish yi 0x043D 1085 3D
Zulu zu 0x0435 1077 35
--
Salu2 Rafael Cano
rcanop@yahoo.es
Jaén - España
Jose F. Gimenez escribió:
> Ramón,
>
>
>>Donde puedo hallar informacion acerca de STRINGTABLE?
>
>
> En la documentación de MS y en MSDN
>
>
>
>>STRINGTABLE LANGUAGE 0,0 <---- que es el 0, 0?
>>{
>> 9 "English" <---- por que empieza en
>>9?
>> 10 "Español"
>>}
>
>
> No es que empiece en 9, sino que para MS el 9 es el código del inglés, y el
> 10 el del español. Otros idiomas tienen otros códigos. P.ej., el IDE tiene
> esta tabla de idiomas:
>
> STRINGTABLE LANGUAGE 0,0
> {
> 3 "Catalí "
> 7 "Deutsch"
> 9 "English"
> 10 "Español"
> 12 "Français"
> 16 "Italiano"
> 22 "Portuguese (Portugal)"
> 86 "Galego"
> }
>
>
>
>>Igual no hallo nada sobre LT() y LT2(), estos pertenecen a Xailer?
>
>
> Sí­, son dos funciones de Xailer para el soporte de múltiples idiomas. La
> sintaxis es:
>
> LT( <nStringID> [, <cParam1>... <cParamN> ] )
>
> - <nStringID> es el código de la cadena que se desea
> - <cParam1>...<cParamN> son valores de cadena que sustituirán a las
> secuencias %N que se encuentren dentro de la cadena de recursos. Es decir,
> la cadena de recursos puede contener %1, %2, %3, etc, y serán sustituidos
> por los parámetros que se pasen a esta función.
>
> Ejemplo:
> Supongamos una cadena de recursos con el código 1000: "Error %1 al abrir
> el fichero %2"
> Se llamarí­a así­:
> LT( 1000, LTrim( Str( DosError() ) ), cFileName )
>
> La función LT2() es exactamente igual que LT(), con la excepción de que
> elimina los caracteres & de la cadena. Es útil en los casos en que
> utilizamos la misma cadena para, p.ej., una opción de un menú con shortcut y
> el mismo tí­tulo de la ventana que abre. El IDE hace esto mismo.
>
>
>
>>Lo pregunto por que estoy checando el RichPad, pero no entiendo por que
>>los valores de los datos que
>>contienen empiezan a partir de 1000.
>
>
> No hay ninguna razón especí­fica para empezar con un valor o con otro.
>
>
>
>>Igual quisiera saber si todos los datos de este se incluyen dentro del
>>ejecutable o por aparte.
>
>
> El actual soporte de mútiples idiomas requiere que crees en recursos una
> tabla con los idiomas soportados (ver arriba), además de una tabla por cada
> uno de esos idiomas. También es muy aconsejable usar un fichero de cabecera
> (.ch) con los códigos de las cadenas en forma reconocible. P.ej.:
> #define MSG_ERROR_ABRIR_FICHERO 1000
> Este fichero de cabecera puedes incluirlo (#include) tanto en el fichero de
> recursos donde tienes las cadenas como en los fuentes de tu programa donde
> uses esas cadenas. Fí­jate en RichPad.
>
>
Avatar de Usuario
jfgimenez
Site Admin
Mensajes: 5718
Registrado: Lun Abr 06, 2015 8:48 pm
Contactar:

documentacion

Mensaje por jfgimenez »

Rafael,
> Los códigos de idioma de windows que yo uso que los saque de Microsoft no
> me acuerdo de que parte de la web son estos, aquí están a parte de las
> agrupaciones generales, las particulares. No es lo mismo el español de
> España que el de Bolivia.
Sí, es cierto; tienes razón. Los códigos de idioma están en realidad
compuestos por dos códigos, y el código final se obtiene con la macro
MAKELANGID. Aquí está la documentación de esa macro, y hay también enlaces a
los código primario y secundario de idioma:
http://msdn.microsoft.com/library/defau ... /library/e n-us/intl/nls_97vo.asp
No obstante, nosotros hemos preferido utilizar solamente el código primario,
e ignorar completamente el secundario. La razón es que cuando el programa se
ejecute tanto en España como en Bolivia, deberá salir en español; no creo
que las diferencias de idioma entre ambos paises sea suficiente como para
justificar el trabajo de 20 tablas sólo para español, otras 13 para inglés,
y ya no he mirado para otros idiomas ;-)
--
Un saludo,
José F. Giménez
José F. Giménez
[Equipo de Xailer / Xailer team]
http://www.xailer.com
http://www.xailer.info
zeasoftware
Mensajes: 1831
Registrado: Mar Oct 11, 2005 9:53 am

documentacion

Mensaje por zeasoftware »

Entonces basicamente solo nos sirve para eso?
No tendria ningun otro uso benefico para programacion?
Esto lo pregunto por que en mis programas Clipper-DOS, los mensajes los pase
a un archivo y del cual cada vez que queria presentar dicho mensaje lo
mandaba a leer,
ej:
WinOk(GetMsg(344), "Facturación")
esto igual redujo casi en un 40% el tamaño de mi aplicacion, y mi objetivo
es ver si esto en Xailer es recomendable o no afecta que usemos muchos
mensajes largo dentro del mismo ejecutable.
O alguien tiene alguna recomendacion para el uso de los mensajes en alguna
aplicación?,
Desde ya Gracias.
Ramón Zea
tabasco.mx
Rafael Cano
Mensajes: 5
Registrado: Jue Jul 14, 2005 11:09 am

documentacion

Mensaje por Rafael Cano »

Jose F. Gimenez escribió:
> Rafael,
>
>
>>Los códigos de idioma de windows que yo uso que los saque de Microsoft no
>>me acuerdo de que parte de la web son estos, aquí­ están a parte de las
>>agrupaciones generales, las particulares. No es lo mismo el español de
>>España que el de Bolivia.
>
>
> Sí­, es cierto; tienes razón. Los códigos de idioma están en realidad
> compuestos por dos códigos, y el código final se obtiene con la macro
> MAKELANGID. Aquí­ está la documentación de esa macro, y hay también enlaces a
> los código primario y secundario de idioma:
> http://msdn.microsoft.com/library/defau ... /library/e n-us/intl/nls_97vo.asp
>
> No obstante, nosotros hemos preferido utilizar solamente el código primario,
> e ignorar completamente el secundario. La razón es que cuando el programa se
> ejecute tanto en España como en Bolivia, deberá salir en español; no creo
> que las diferencias de idioma entre ambos paises sea suficiente como para
> justificar el trabajo de 20 tablas sólo para español, otras 13 para inglés,
> y ya no he mirado para otros idiomas ;-)
>
Efectivamente no merece la pena para un Id de trabajo pues las
diferencias son mí­nimas, yo estaba pensando en aplicaciones finales, por
ejemplo en mi caso, en la empresa donde trabajo, la aplicación (de
tasaciones inmobiliarias), está tambien en Nicaragua y Chile, y sí­ hemos
tenido que traducir ya que sino los clientes finales de la aplicación,
no se enteraban de lo que decí­a el informe de la tasación, o el certificado.
Responder