+ Rispondi al messaggio
Visualizzazione dei risultati da 1 a 5 su 5

Inno Setup Condizionare lingua File di licenza

  1. #1
    collega non è in linea Scolaretto
    Ho realizzato con InnoSetup il pacchetto di installazione di un mio piccolo programma in VB6.
    Mi piacerebbe poter condizionare il file di licenza, (che nel mio caso non è altro che un messaggio di benvenuto), al variare della lingua di sistema.
    Ho letto gli articoli di spikexx84, e mi sono guardato gli esempi della guida di Inno, ma io non sono molto esperto, e non me la cavo bene con l’inglese…
    Ho pasticciato un po’, (tanto), ma sono riuscito a combinare niente, non so dove mettere le mani.
    Posto una delle tante soluzioni che ho provato:


    [CODE]
    [Setup]
    ;
    ;
    //LicenseFile=C:\Programmi\Microsoft Visual Studio\VB98\DaVB5-1U\Licenza.rtf
    function GetUILanguage: Integer;
    
    begin
      if GetUILanguage = $0409 then
      begin    
       LicenseFile=C:\Programmi\MioProgramma\LicenzaEN.rtf
      else
       LicenseFile=C:\Programmi\MioProgramma\LicenzaIT.rtf
      end;      
    end;
    
    Mi potreste dare un aiuto ?
    Grazie in anticipo

  2. #2
    L'avatar di gibra
    gibra non è in linea Very Important Person
    Sei fuori strada, non serve usare la sezione [code]

    Prima di tutto devi definire le lingue da utilizzare nella sezione [Language] esempio:
    [Languages]
    Name: ita; MessagesFile: compiler:Languages\Italian.isl
    Name: eng; MessagesFile: compiler:Default.isl
    
    Poi devi definire nella sezione [Files] dello script i file da utilizzare in base alla lingua, cioè specificare la lingua per ognuno, esempio:
    [Files]
    Source: LICENZA.TXT; DestDir: {app}; Languages: ita
    Source: LICENSE.TXT; DestDir: {app}; Languages: eng
    
    Se poi dovessi usare finestre personalizzate in cui utilizzare dei messaggi 'in lingua' allora dovrai inserirli nella sezioni :
    [Messages] e/o [CustomMessages] così:
    ita.WizardSelectTasks=Selezione tipo di installazione
    ita.SelectTasksDesc=Quale tipo di installazione desiderate eseguire?
    ita.SelectTasksLabel2=Selezionare la modalità di esecuzione di [name],  poi premere Avanti.
    ita.ReadyMemoTasks=Tipo di installazione selezionata:
    eng.WizardSelectTasks=Select type of installation
    eng.SelectTasksDesc=Which type of installation you want to run?
    eng.SelectTasksLabel2=Select the mode of execution of [name], then click Next.
    eng.ReadyMemoTasks=Selected installation type:
    
    Comunque tra gli esempi installati con InnoSetup trovi anche quello per le lingue.

    ℹ️ Leggi di più su gibra ...

  3. #3
    collega non è in linea Scolaretto
    Grazie Gibra per l'interessamento, ma credo di non aver capito. Avevo già inserito i due file differenziati
    nella sezione [Files];
    [Setup]
    AppId={{42AB5792-3AA5-47C6-AEE7-1B46DD218EBD}
    ;
    ;
    WindowVisible=false
    ;
    ;//LicenseFile=C:..\Licenza.rtf  
    
    [Languages]
    Name: English; MessagesFile: compiler:Default.isl
    Name: Italian; MessagesFile: compiler:Languages\Italian.isl  
    
    [Files]
    Source: ..\MyProgram.exe; DestDir: {app}; Flags: ignoreversion
    ;
    Source: ..\Licenza_1.rtf; DestDir: {app}; Languages: Italian ; Flags: ignoreversion
    Source: ..\Licenza_2.rtf; DestDir: {app}; Languages: English ;Flags: ignoreversion
     
    [Run]
    ;  
    [Registry]
    ;
    
    ma se nella sezione [Setup] non inserisco l'istruzione
    LicenseFile=C:..\Licenza.rtf
    
    la pagina con il file di licenza non compare mai. Per questo avevo pensato di condizionare la scelta dell'uno o dell'altro file di licenza alla lingua di sistema, nella sezione [Code].
    Non voglio creare finestre personalizzate, vorrei soltanto che nella finestra della Licenza comparisse un file o l'altro a seconda della lingua.
    E non mi riesce proprio.
    Scusami e grazie ancora.

  4. #4
    L'avatar di Brontolo
    Brontolo non è in linea Very Important Person
    La riga LicenseFile=... nella sezione Setup si usa quando il file di licenza è unico e non differenziato per lingua. Nel tuo caso quindi non occorre e il tutto viene risolto nella sezione [Languages]. Per esempio:
    [Languages]
    Name: "it"; MessagesFile: "compiler:Languages\italian.isl"; LicenseFile: "lic_ita.txt"
    Name: "de"; MessagesFile: "compiler:Languages\german.isl"; LicenseFile: "lic_deu.txt"
    Name: "fr"; MessagesFile: "compiler:Languages\frenchh.isl"; LicenseFile: "lic_fra.txt"
    
    Naturalmente i file che nell'esempio sono chiamati lic_***.txt devi approntarli tu, ma non è necessario inserirli anche nella sezione [Files] poiché non devono essere installati nel computer di destinazione.
    ℹ️ Leggi di più su Brontolo ...

  5. #5
    collega non è in linea Scolaretto
    Grazie Brontolo.
    Capito,provato e ...chiaramente funziona.
    Buona domenica e "buon voto" a tutti.
    Ciao

+ Rispondi al messaggio

Potrebbero interessarti anche ...

  1. Inno Setup file .BIN
    Da Stoker nel forum Altri linguaggi e strumenti
    Risposte: 6
    Ultimo Post: 27-04-2012, 18:23
  2. [Inno Setup]Leggere il file di licenza
    Da Robypuma nel forum Altri linguaggi e strumenti
    Risposte: 3
    Ultimo Post: 19-04-2010, 09:31
  3. [Inno Setup]Sintassi per sovrascrivere file in Inno Setup
    Da frisella nel forum Altri linguaggi e strumenti
    Risposte: 16
    Ultimo Post: 23-03-2010, 10:15
  4. Risposte: 2
    Ultimo Post: 17-03-2010, 11:58
  5. [Inno Setup]File di setup
    Da Giano nel forum Altri linguaggi e strumenti
    Risposte: 2
    Ultimo Post: 11-02-2010, 15:41