Antonio , he corregido un par de pequeños bugs en el array aStrings y he añadido unas funciones y algunos cambios al sistema multilenguaje de fwh .Los he subido al repositorio , revisalo cuando puedas por favor.
Antonio , he corregido un par de pequeños bugs en el array aStrings y he añadido unas funciones y algunos cambios al sistema multilenguaje de fwh .Los he subido al repositorio , revisalo cuando puedas por favor.
Manuel,
visto, gracias. Habria que publicar en el foro los elementos que requiran traducción como "Items". No creo que se use la misma palabra en todos los idiomas que soportamos.
Quieres que lo pregunte yo ?
Creo que lo primero sería subir los cambios realizados en strings.prg a la distribución fwh para la próxima versión .
Las palabras específicas de ereport dejarlas en el archivo ini por lo menos hasta tener más completó el desarrollo de ereport , eso si ir completando la traducción luego comparar posibles repeticiones y por último decidir que merece la pena pasar a strings.prg y que dejar en el ini
Manuel, cuando en EasyReport no encuentra una(s) palabra(s) da error en AADD
He tenido que añadirlas manualmente en String.Prg
cnavarro wrote:Manuel, cuando en EasyReport no encuentra una(s) palabra(s) da error en AADD
He tenido que añadirlas manualmente en String.Prg
Ok, no te preocupes, ahora lo miro y te comento
Espero que sea de vacaciones
![]()
function ER_LoadStrings( cFileName )
local cLine, n := 1
local aLanguage := {} // aqui estaba solo => local aLanguageBuenas a todos.
Cristobal , estos dias he estado pensando un poco lo de los cambios en el archivo string.prg ....
Quizas debamos pensar como queremos que funcione exactamente el sistema de lenguajes en fwh.
Ahora lo que hacemos es cargar el array aStrings y si tenemos un archivo externo de palabras añadirlo a este .
Quizas sea mejor hacer un control por separado ( en dos arrays). Tenemos en el código del prg astrings que es invariable y luego tenemos otro array que se genera con las palabras del archivo eXterno ( si existe ) . La función fwString( ) mira en aStrings si la palabra existe , sino existe mira si se ha cargado el otro array y la busca en ese ( solo si ese array esta cargado) si no la encuentra nos da la opción de añadirla , la graba en el fichero ini y se recarga este segundo array .... Esto nos permite ir añadiendo las nuevas palabras y las nuevas traducciones en el archivo externo fácilmente . Esto da la flexibilidad de poder tener unas palabras genéricas en el código y las especificas de un programa en el archivo externo .
¿ Como lo ves ? . ¿ como lo harias tu ?
Hola Manuel
Bien, me parece lógico y práctico
De esta manera no recargamos excesivamente la memoria, y podemos tener ficheros de configuracion distintos para cada aplicacion (bastaría con no incluir en el directorio de instalacion inicialmente el fichero externo), o al revés, añadirlo en cada nueva aplicacion y se iría enriqueciendo progresivamente
¿Te he entendido bien?
Lo que sería importante es controlar que no exista en los dos arrays a la vez (sé que en principio parece difícil que esto ocurra, pero no imposible)
cnavarro wrote:
Lo que sería importante es controlar que no exista en los dos arrays a la vez (sé que en principio parece difícil que esto ocurra, pero no imposible)
mastintin wrote:
Otra opción es comprobarlo según se utilicen las palabras ... en fwstring() se cargan los dos arras al completo se comprueba en el primero ( astrings) si se encuentra la palabra , se mira si existe el segundo array y si existe esa palabra en este segundo , si existe se borra del archivo y se elimina del array .
[/code]
Cristobal ,Antonio he subido al repositorio un nuevo código , esta sin limpiar pero es para ver si funciona correcto . Es una primera aproximación que seguro se puede pulir mas . Usa el array de siempre para las palabras "fijas" ( definido en el prg ) y un hash para cargar las palabras del fichero externo , si por lo que sea se añade una nueva palabra al programar esta se añade automáticamente al fichero en el primer lanzamiento . En un segundo lanzamiento cuando ya esta incorporada al fichero , si detecta que no tiene traducción al idioma que se esta usando pregunta por su traducción y se añade esta al fichero ...
A ver como lo veis , si funciona bien pasamos a limpiar código .
He subido un nuevo código , mas limpio , mas optimizado ...
Manuel, según lo veo yo, no debería distinguir entre por ejemplo: "Mi Dialogo" y "mi dialogo"
Qué opinas?
cnavarro wrote:Manuel, según lo veo yo, no debería distinguir entre por ejemplo: "Mi Dialogo" y "mi dialogo"
Qué opinas?