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

Discussione: Inno Setup Condizionare lingua File di licenza

  1. #1
    collega non è in linea Scolaretto
    Post
    188

    Inno Setup Condizionare lingua File di licenza

    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
    codice:
    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 Amanuense
    Luogo
    Breganze (VI)
    Post
    6,093
    Sei fuori strada, non serve usare la sezione [code]

    Prima di tutto devi definire le lingue da utilizzare nella sezione [Language] esempio:
    codice:
    [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:
    codice:
    [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ì:
    codice:
    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.


  3. #3
    collega non è in linea Scolaretto
    Post
    188
    Grazie Gibra per l'interessamento, ma credo di non aver capito. Avevo già inserito i due file differenziati
    nella sezione [Files];
    codice:
    [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
    codice:
    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
    Post
    2,856
    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:
    codice:
    [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.
    Il regolamento del forum: la prima cosa da leggere.

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

+ Rispondi al Thread

Permessi di invio

  • Non puoi inserire discussioni
  • Non puoi inserire repliche
  • Non puoi inserire allegati
  • Non puoi modificare i tuoi messaggi