2012-02-17 11 views
8

In Delphi è disponibile un'opzione VersionInfo-> Lingua-> ID locale durante la visualizzazione delle proprietà del progetto.
Stavo girovagando su come impostare una proprietà di questo tipo per un programma compilato in Free Pascal.
Qualsiasi soluzione è benvenuta: argomento riga di comando o direttiva preprocessore come {$key value}; equivalente a Delphi.Come informare Free Pascal Compiler per impostare l'ID locale per l'applicazione compilata

+3

In Lazarus è facile, c'è una scheda delle impostazioni del progetto molto simile. Queste impostazioni sono quindi memorizzate nei file '* .lpi' del progetto come questo' ' – TLama

+1

@TLama, sembra un'ottima risposta, ti suggerisco di farne una, quindi possiamo votarla. – Johan

+0

(1) Cosa ti aspetti esattamente di essere localizzato? (2) È improbabile che uno strumento portatile utilizzi una codepage di Windows. (3) se questo è solo D2009 +, tali cose sono ancora in lavorazione. –

risposta

8

Se è possibile costruire i vostri progetti utilizzando *.lpi file quindi vorrei provare ad aggiungere quanto segue nella lima del progetto Project.lpi.Nel seguente frammento viene mostrato come impostare l'ID locale del progetto (per piattaforma Windows) su 0405 (ceco).

<?xml version="1.0"?> 
<CONFIG> 
    <ProjectOptions> 
    ... 
    <VersionInfo> 
     <UseVersionInfo Value="True"/> 
     <Language Value="0405"/> 
     <StringTable ProductVersion=""/> 
    </VersionInfo> 
    ... 
    </ProjectOptions> 
    ... 
</CONFIG> 

Oppure, se si utilizza Lazarus allora si potrebbe utilizzare per Delphi scheda delle impostazioni molto simili che si può aprire da Project/Project Options ... e come in Delphi andare Version Info dov'è la casella Language selection combinata disponibile se si includono le informazioni sulla versione nel progetto.

5

Non sicuro al 100% che funzioni, sentitevi liberi di votarmi se questo non funziona.

Lazarus erediterà le impostazioni internazionali con cui inizia.
È possibile impostare le informazioni locale prima di iniziare Lazzaro in Linux/OS X utilizzando la riga di comando:

export LC_CTYPE="pt_BR" 
export LANG="pt_BR" 
export LANGUAGE="pt_BR" 
./lazarus 

l'applicazione compilata dovrebbe ereditare queste impostazioni.

La risposta è ispirata da this workaround a un errore è stato risolto.

Vi consiglio di dare un'occhiata anche a at the fpc forum e porre la domanda lì.
Non dimenticare che include dettagli come la piattaforma (Linux/Windows/OS X) e la versione esatta di FPC e Lazarus che stai utilizzando e le impostazioni internazionali che desideri.

migliore risposta
Da: http://forum.lazarus.freepascal.org/index.php/topic,5924.0.html

Infine, sono riuscito a trovare un modo semplice ed efficace per rendere la mia localizeable applicazione. Usa solo un'unità e nessun codice.
1. Aggiungi unità "defaulttranslator" all'elenco dei tuoi usi.
2. Abilitare "i18n" in "Opzioni progetto" e impostare "Directory di output PO" su "locale" o "lingue". È possibile inserire i file di traduzione direttamente nella cartella dell'applicazione, ma ciò farebbe solo un casino. Non dimenticare di creare una cartella appropriata.
3. Aggiungere componenti al modulo. Se hai già tutti i componenti nel modulo, dovrai spostarlo un po ', quindi sarà modificato.
4. Salvare il progetto.
5. Ora ci dovrebbero essere file .po nella cartella "locale" o "lingue". Per lingue diverse i file devono essere copiati e rinominati come "project1.XX.po", dove XX è il codice della lingua (ad esempio "en", "de", ecc.).
6. Tradurre i file .po con il software di traduzione e generare file .mo. Suggerisco di usare POEdit.
7. Eseguire l'applicazione e la traduzione da utilizzare verrà selezionata dalle impostazioni internazionali locali. Se è necessario testare un'altra lingua, è sufficiente avviare l'applicazione con i seguenti parametri della riga di comando: "-l XX" o "-lang XX", dove XX è un codice di lingua.
Questo metodo non è molto versatile, ma converte le stringhe di risorse e le proprietà dei componenti LCL.