Foros Club Delphi

Foros Club Delphi (https://www.clubdelphi.com/foros/index.php)
-   Varios (https://www.clubdelphi.com/foros/forumdisplay.php?f=11)
-   -   Saber idioma seleccionado en Inno setup (https://www.clubdelphi.com/foros/showthread.php?t=26370)

solanova 20-10-2005 17:52:42

Saber idioma seleccionado en Inno setup
 
Hola. : )

Tengo un programa codificado para varios idiomas. El idioma mostrado al abrir el programa es el que se lee de un key del registro. Si no existe ese key por defecto seleeciona ingles.
Bien.

Este programa va a ser compilado con inno setup, dando a alegir el idioma al ejecutar el setup de mi programa. Mi duda es.. Cómo pueo saber el idioma seleccionado desde el setup para desde ahí mimo guardarlo en un key de registro?

el codigo para elección de idioma en inno setup seria asi:

[Languages]
Name: en; MessagesFile: "compiler: Default.isl"
Name: de; MessagesFile: "compiler:Languages\German.isl"
Name: es; MessagesFile: "compiler:Languages\Spanish.isl"
------------------------------------------------------------------

Depués me gustaría añadir una clave al registro con el valor que el usuario allá seleccionado como idioma.

[Registry]
Root: HKLM; Subkey: "SOFTWARE\\miprograma\\"; ValueType: string; ValueName: "lang"; ValueData: "?????????"
-----------------------------------------------------------------------

Saben cómo obtener el valor del idioma que el usuario selecciona al instalar para guardarlo en un key??

mil gracias.

dec 20-10-2005 18:01:15

Hola,

Puedes utilizar determinada variable (o función, no estoy ahora seguro) en la sección CODE del Script de Inno Setup. Algo así como esto:

[code]
Código:


 // Usada para que XEditor "comienze" con el lenguaje
 // que el usuario eliga en el programa de instalación.
 //
 procedure RegistroLenguaje(lenguaje: string);
 begin
  RegWriteStringValue(HKEY_CURRENT_USER,
        'Software\David Esperalta\XEditor\Interfaz',
          'Lenguaje', lenguaje);
 end;
 
 // Comienza la instalación de XEditor
 //
 function InitializeSetup() : boolean;
 begin
  case ActiveLanguage of
        'es': RegistroLenguaje('Español');
        'en': RegistroLenguaje('English');
  end;
  Result := true;
 end;

Es en la función InitializeSetup() en que ya sabes qué idioma seleccionó el usuario. Yo utilizo dicha función para llamar a su vez a la que puedes ver más arriba, precisamente, para hacer lo que necesitas.

solanova 20-10-2005 18:15:07

Muchas gracias David. Es Pascal el idioma en el que se programa en inno setup verdad?
Soy bastante joven y no estoy familiarizado con el. Donde podría encontrar una buena documentación para escribir codigos en inno setup? gracias.

dec 20-10-2005 18:35:29

Hola,

Bueno. Aunque no se puede utilizar todo el Pascal de Delphi, sí que pueden usarse no pocas cosas de Pascal (y de Object Pascal, casi me atrevería a decir como mejor dicho) en el apartado "CODE" de Inno Setup. ¿Dónde encontrar información? Con Inno Setup encontrarás algunos ejemplos, en la carpeta "Samples" (creo recordar) que hallarás donde instalaras Inno Setup. Estos ejemplos tienen como prefijo la palabra "Code".

Otro punto de información es, por supuesto, la propia ayuda de Inno Setup, que, aunque en inglés, está bastante completa en este sentido. Por otro lado, tengo entendido (es cuestión de bucear un poco en la página Web del programa) que se han hecho incluso algunas "unidades", que contienen cierto código (a modo de funciones predefinidas y cosas así) para usarlo en los programas de instalación que genera Inno Setup. Echa un vistazo a ver.

Ya te digo, sobre todo en la ayuda (porque esta segunda posibilidad de unidades con cierto código solamente la he leído en alguna parte, pero no la he comprobado, aunque no dudo que existan), digo, en la ayuda del propio programa encontrarás información de referencia: posibles variables globales, funciones, procedimientos, etc., etc.


La franja horaria es GMT +2. Ahora son las 02:42:38.

Powered by vBulletin® Version 3.6.8
Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
Traducción al castellano por el equipo de moderadores del Club Delphi