![]() |
![]() |
| Paypal | FTP | CCD | Buscar | Trucos | Trabajo | Foros |
|
|||||||
| Registrarse | FAQ | Miembros | Calendario | Guía de estilo | Buscar | Temas de Hoy | Marcar Foros Como Leídos |
![]() |
|
|
Herramientas | Buscar en Tema | Desplegado |
|
|
|
#1
|
||||
|
||||
|
Saludos dec!
El único inconveniente que le veo al uso de los componentes que comentas, en lugar de la herramienta de Delphi, es que no podrías traducir los mensajes propios de Delphi cuando ocurre alguna excepción u otros que no tienen que ver con la propiedad "Caption" o "Hint" (ésta es la única ventaja que le veo a la herramienta de Delphi, ya que te permite visualizar casi todas las cadenas usadas en la aplicación, incluyendo los mensajes de las expcepciones, y así poder traducirlo "todo"). (En caso de estar equivocado, entonces, discúlpame pero es que no conozco bien esos componentes y baso el comentario por como dices que funcionan) |
|
#2
|
||||
|
||||
|
Hola,
Bueno. Es cierto que traducir todos los mensajes que pudieran generarse puede ser una tarea ardua y complicada: la verdad es que es algo que no había pensado y sí solamente utilizo los recursos de Delphi en castellano, que pueden encontrarse en el apartado de Recursos de este mismo sitio Web y que tradujo un forista de nombre Germán. Por cierto, gracias Germán. Lo que sí puedo añadir a lo dicho es que uno de los componentes mencionados (concretamente "TJvStringsTranslator") se dedica, precisamente, a traducir "variables" en tiempo de ejecución, de tal manera que estas se incluyen en el archivo XML preciso, dentro del "nodo/formulario" en que son utilizadas. Quiere decirse que no se limitan los componentes a traducir los "Captions" y "Hints" de los contoles. Por ejemplo, si tuvieras que mostrar al usuario un determinado mensaje (que no tiene que ser el "Caption" de un control) podrías hacerlo sin problemas: sencillamente guardando dicho mensaje en una variable de tipo "string" y utilizando el componente susomentado. No sé si me explicaré correctamente: en el ejemplo de los componentes puede verse más claro, puesto que no solamente se traducen algunos controles ("Caption" y "Hints") sino que también se muestra cómo es posible traducir variables, de tal modo que el tema de los mensajes al usuario puede solucionarse de ese modo, sino es ya que esto no llegue a otros mensajes que pudieran mostrarse en caso de excepción, por ejemplo. Es probable que no sean unos componentes perfectos, o que los halla mejores, pero, desde luego, dan bastante juego, son muy sencillos de usar y permiten una escalabilidad también sencilla (en el sentido referido más arriba de poder añadir más controles y sus correspondientes traducciones sin mucha dificultad). ¿Un ejemplo "real"? Bueno. El único que puedo ofrecer es el programa XEditor, el cual hace uso de los referidos componentes y cuya interfaz está "disponible" en español y en inglés (este último un tanto regular, porque he sido yo mismo el traductor/traidor que ha llevado a cabo la tarea). Última edición por dec fecha: 01-09-2005 a las 19:42:35. Razón: (corrección del texto) |
|
#3
|
||||
|
||||
|
Buenas noches, señores/as.
La verdad que los componente están bien, pero me gustaria utilizar delphi por la traducción de las excepciones me parecce mas sencillo y ademas no dependo de componentes externos. De todas formas esta bien que halla varias solucciones. Realmente jmariano a mi no me crea ninguna dll, seguramente lo haga mal. ¿Prodrias mandarme los pasos a segurir y un ejemplo en el que traduzca una simple etiqueta, o el formulario?. Seguiré trasteando con esos componentes. Os tendre informados...
__________________
Gracias por dedicar su valioso tiempo... '(^_^)' Un saludo Hugorr Última edición por Hugorr fecha: 01-09-2005 a las 22:48:55. Razón: Corrección del texto |
|
#4
|
||||
|
||||
|
Cita:
Cualquier duda vuelve a preguntar! Saludos! Última edición por jmariano fecha: 02-09-2005 a las 01:31:58. |
|
#5
|
||||
|
||||
|
Buenas,
jmariano bueno pues tenias rarón crea un archivo con extensión del idioma seleccionado caso de español (*.ESP). Ahora que ya hay cosa claras. Me gustaria meter todos esos archivo en una carpeta llamese "lang" y yo desde mi programa elegir un idioma de los disponibles y cambiarlo. Claro esta el problema que para cambiar depende del idioma del S.O. ¿Que pasa si el S.O. tiene un idioma que en la aplicación no está creado? Si no es molestia prodrias mandarme un ejemplo.... Un saludo....
__________________
Gracias por dedicar su valioso tiempo... '(^_^)' Un saludo Hugorr Última edición por Hugorr fecha: 04-09-2005 a las 18:43:26. Razón: Corrección del texto |
|
#6
|
||||
|
||||
|
Cita:
A la cuestión de poder seleccionar el idioma en tiempo de ejecución, el problema está en que el sistema fue pensado para que el idioma se seleccionara automáticamente según el de Windows, al ejecutar la aplicación. Pero, despues de buscar un poco en la ayuda, resulta que si existe una manera (aunque es con "truco", claro, y no es algo soportado por la VCL y las funciones de Delphi). Así que te explico según lo que leí: - Primero has de localizar una unidad llamada "ReInit.pas", forma parte del ejemplo de Delphi "Richedit" que se encuentra dentro de la carpeta "Demos". Esta unidad la has de añadir a la cláusula "Uses" de tu aplicación (lo mejor sería que la copiaras tambien a la carpeta de tu proyecto). Esta unidad es necesaria porque contiene algunos métodos que nos permitirán cambiar el idioma en ejecución. - Por último, en el lugar donde quieras cambiar el idioma, llama a la función "LoadNewResourceModule" (pasándole como parámetro el identificador del idioma a cargar), comprueba que la función te devuelve un valor distinto de 0 (si devuelve 0 es que el idioma no se cargó) y, si es así, llama al procedimiento "ReinitializeForms" (este procedimiento lo que hace es volver a leer los recursos para todos los formularios ya instanciados en memoria). Una vez que hayas hecho todo (y si fue bien), verás que, a partir de ahora, todos tus formularios, mensajes, etc., son presentados en el idioma seleccionado. Te pongo el ejemplo que viene en la ayuda:
(En el ejemplo carga, en tiempo de ejecución, todos los recursos para el idioma francés sin importar las diferentes variantes, es decir, carga el mismo recurso para todas las variantes que hubiera del francés). Lo único que veo dificil es saber que identificador hay que utilizar para un idioma determinado. De todas formas, puedes hacer una búsqueda por el tipo "LCID" (utilizado para especificar un idioma) y ver el tema de los identificadores válidos. Espero que te sirva! Saludos! P.D: Se me olvidó comentarte que si colocas los archivos de recursos en otra carpeta distina a la de la aplicación, entonces, tendrás que añadir dicha carpeta al "PATH" de Windows. Chao! Última edición por jmariano fecha: 02-09-2005 a las 22:17:29. |
![]() |
| Herramientas | Buscar en Tema |
| Desplegado | |
|
|
|