HP Prime - Programación multilenguaje [STRINGFROMID]
STRINGFROMID es un comando que devuelve las cadenas integradas en la calculadora HP Prime mediante el ingreso de un ID, existen muchos valores y estos varían de acuerdo al idioma de la calculadora, siendo muy util para programación multilenguaje.
Algo que puede causar dolores de cabeza al momento de crear programas multilenguajes es la traducción y su adecuada contextualización, este trabajo hasta puede resultar algo nuevo en muchos sentidos. Un punto ya conocido es que la calculadora es multilenguaje, en todas sus versiones - firmwares (2~ 2.5% del tamaño total es texto consultable con este comando, y un porcentaje más alto es el contenido multilenguaje de la Ayuda), por lo tanto posee cada texto mostrado para cada idioma.
El comando STRINGFROMID permite acceder a las cadenas integradas (textos de interfaz) de la calculadora HP Prime, favoreciendo enormemente la creación de un programa que soporte el idioma actual de la calculadora.
Es posible beneficiarnos con la reducción del tamaño del programa en una cierta proporción debido a la omisión de cadenas, podemos beneficiarnos aún más con ello creando bucles que recorran una lista de indices o crear una subfunción con un nombre más corto.
De esta manera crear programas en múltiples idiomas puede resultar menos problemático. ¡Eso sí! necesitaremos revisar tranquilamente el contenido del comando STRINGFROMID e identificar el ID que nos sea útil, recordando que el número de cadenas integradas irá lógicamente en aumento a medida que nuevas funciones sean agregadas a la calculadora a lo largo.
Teniendo esto en cuenta es posible que las versiones anteriores no puedan acceder a ciertos ID, por lo que debemos controlar su uso con IFERR y terminar la ejecucción de nuestro programa sin antes mostrar un aviso como: "Es muy recomendable actualizar el firmware de tu calculadora para que el programa funciones correctamente". También existe la opción de hacerle la prueba inicial de igualdad o de prueba del máximo ID usado, de esta manera la recomendación será mostrada al inicio de la ejecucción y evitar problemas con los usuarios por su avance perdido en nuestro programa.
Como aporte final y motivo de esta publicación, se adjunta las cadenas integradas del comando en los 8 lenguajes soportados hasta ahora en el firmware 11226, siendo el ID máximo igual a 2996. Es posible descargar los archivos o simplemente hacerle una consulta con Ctrl+F para agilizar la búsqueda. Algunos caracteres no son mostrados correctamente debido a que son de uso privado (solo interpretables en HP Prime), por lo que será necesario realizar la consulta en la calculadora para visualizar el caracter correcto.
Los caracteres privados que no se muestran correctamente en estos archivos son solo 6 hasta ahora:
Language:= 1 English
Language:= 2 中文 (简体)
Language:= 3 Français
Language:= 4 Deutsch
Language:= 5 Español
Language:= 6 Nerderlands
Language:= 7 Português
Language:= 8 日本語
Crear programas multilenguaje
STRINGFROMID( ) - HP Prime
STRINGFROMID( ) - HP Prime
Algo que puede causar dolores de cabeza al momento de crear programas multilenguajes es la traducción y su adecuada contextualización, este trabajo hasta puede resultar algo nuevo en muchos sentidos. Un punto ya conocido es que la calculadora es multilenguaje, en todas sus versiones - firmwares (2~ 2.5% del tamaño total es texto consultable con este comando, y un porcentaje más alto es el contenido multilenguaje de la Ayuda), por lo tanto posee cada texto mostrado para cada idioma.
El comando STRINGFROMID permite acceder a las cadenas integradas (textos de interfaz) de la calculadora HP Prime, favoreciendo enormemente la creación de un programa que soporte el idioma actual de la calculadora.
Es posible beneficiarnos con la reducción del tamaño del programa en una cierta proporción debido a la omisión de cadenas, podemos beneficiarnos aún más con ello creando bucles que recorran una lista de indices o crear una subfunción con un nombre más corto.
De esta manera crear programas en múltiples idiomas puede resultar menos problemático. ¡Eso sí! necesitaremos revisar tranquilamente el contenido del comando STRINGFROMID e identificar el ID que nos sea útil, recordando que el número de cadenas integradas irá lógicamente en aumento a medida que nuevas funciones sean agregadas a la calculadora a lo largo.
Teniendo esto en cuenta es posible que las versiones anteriores no puedan acceder a ciertos ID, por lo que debemos controlar su uso con IFERR y terminar la ejecucción de nuestro programa sin antes mostrar un aviso como: "Es muy recomendable actualizar el firmware de tu calculadora para que el programa funciones correctamente". También existe la opción de hacerle la prueba inicial de igualdad o de prueba del máximo ID usado, de esta manera la recomendación será mostrada al inicio de la ejecucción y evitar problemas con los usuarios por su avance perdido en nuestro programa.
Como aporte final y motivo de esta publicación, se adjunta las cadenas integradas del comando en los 8 lenguajes soportados hasta ahora en el firmware 11226, siendo el ID máximo igual a 2996. Es posible descargar los archivos o simplemente hacerle una consulta con Ctrl+F para agilizar la búsqueda. Algunos caracteres no son mostrados correctamente debido a que son de uso privado (solo interpretables en HP Prime), por lo que será necesario realizar la consulta en la calculadora para visualizar el caracter correcto.
Los caracteres privados que no se muestran correctamente en estos archivos son solo 6 hasta ahora:
STRINGFROMID - Detalles
STRINGFROMID_Language.txt | 58 ~ 71 KB | 2016 12 08 | Firmware 11226
CÓDIGO DE EXTRACCIÓN
Generando archivos de aplicación .txt con codificación Unicode
Generando archivos de aplicación .txt con codificación Unicode
EXPORT STRINGFROMID_TXT BEGIN LOCAL Tx,x,Nmb="STRINGFROMID_"+Language+".txt"; DelAFiles(Nmb); AFilesB(Nmb,0):={255,254}; IFERR FOR x:=0 TO 9^9 DO Tx:=x+"\t"+STRINGFROMID(x)+"\r\n"; LOCAL y,Nvo={}; FOR y:=1 TO DIM(Tx) DO Nvo(0):=Tx(y); Nvo(0):=BITSR(Tx(y),8) END; AFilesB(Nmb,AFilesB(Nmb)):=Nvo END THEN STRINGFROMID(1680) END END;
Language:= 1 English
Language:= 2 中文 (简体)
Language:= 3 Français
Language:= 4 Deutsch
Language:= 5 Español
Language:= 6 Nerderlands
Language:= 7 Português
Language:= 8 日本語
ANIMACIÓN EXTRA - STRINGFROMID
Comentarios
Publicar un comentario