2009-08-13 2 views
8

Delphi supporta l'internazionalizzazione in alcun modo?Delphi e i18n

Ho visto che posso aggiungere lingue diverse per un progetto, ma sembra creare più istanze dei file dfm. Ho ragione che il linguaggio non può essere modificato in fase di runtime?

Come gestite l'internazionalizzazione (se lo fate)? Ci sono delle buone pratiche?

+1

alcune delle risorse citate nelle risposte a questa domanda può essere utile a voi: http://stackoverflow.com/questions/1019822/process-for-localization-of-delphi-2009-app-by-volunteer-translators – Argalatyr

risposta

1

Una volta ho sperimentato il cambio di lingua in runtime. Ha funzionato benissimo, ma avevo bisogno di scrivere molto codice (e aggirare i file dfm). Il problema è che è un sacco di problemi e non ne hai quasi mai bisogno.

L'opzione migliore (a mio parere) è quella di creare una versione della lingua di base e utilizzare uno strumento di traduzione per l'altra lingua. Usiamo un third party translator che funziona sull'eseguibile e sulla DLL. Sostituisce le stringhe nelle risorse e crea nuovi file binari.

Un grande vantaggio di questo strumento è che mostra le finestre di dialogo tradotte (solo componenti standard di Windows) in modo da avere un feedback diretto se le etichette sono troppo grandi.

+0

Grazie. Qualche raccomandazione riguardante lo strumento di traduzione? – jpfollenius

+0

Ho aggiunto un collegamento. Non è gratuito, ma ne siamo estremamente contenti. –

0

Ho utilizzato il SiComponents prima. Ti permettono di cambiare tutto il testo indipendentemente dall'eseguibile. Puoi incorporare le lingue diverse nel tuo eseguibile (non consigliato) o caricarle dai file. C'è anche un editor per supportare la traduzione. Sono molto buoni, stabili e veloci.

In Delphi 2006 in Strumenti, Opzioni, Strumenti di traduzione Opzioni è possibile configurare gli strumenti di traduzione, in particolare il Repository di traduzione. Può essere trovato sotto Visualizza, Translation Manager. Tutte le stringhe tradotte saranno stringhe di risorsa e possono essere memorizzate nella dll specifica della lingua. Cercando l'aiuto di Translation Manager ti indirizzerai nella giusta direzione.

5

Delphi viene fornito con alcuni strumenti per farlo.

Ecco un tutorial per Delphi 2005 e un video di Nick Hodges mostra la versione più recente per Delphi 2009.

-1

I secondo la raccomandazione per l'utilizzo dei componenti TsiLang (www.sicomponents.com). Li ho appena usati per passare dall'inglese - solo all'inglese + cinese, selezionabile in fase di esecuzione, e ho trovato il processo molto più semplice di quanto mi aspettassi. I risultati finali non sono perfetti, ma sicuramente sufficienti per lavorare.

1

Amd poi c'è dxgettext:

http://dxgettext.po.dk/

tradizionalmente uno degli strumenti utilizzati per cambiare la lingua runtime senza riavvio.

Si noti che con Delphi/unicode la quantità di modifiche del codice con questi pacchetti è diminuito (uno non deve cambiare qualsiasi uso resourcestring)