![]() |
![]() |
| 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
|
||||
|
||||
|
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 |
|
#2
|
||||
|
||||
|
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 | |
|
|
|