Quale tecnica sarebbe il minimo sforzo per internazionalizzare (almeno in più lingue) le applicazioni Delphi esistenti?

StackOverflow https://stackoverflow.com/questions/233560

Domanda

Ho sviluppato circa 300 applicazioni che vorrei fornire con funzionalità multilingua indipendenti dal sistema operativo. Ho scritto un traduttore just-in-time, ma è troppo lento nelle applicazioni con molti componenti. Cosa suggeriresti di fare?

È stato utile?

Soluzione

Ho sentito che i componenti TsiLang sono belli, ma stai guardando un soluzione sul posto ...

Ho usato GNU gettext per Delphi che fa esattamente quello che vuoi, carica le traduzioni da un file di testo e sostituisce il testo nei componenti. Ha anche uno scanner pas / dfm per generare automaticamente il file di traduzione in inglese.

È anche possibile modificare automaticamente il codice sorgente pascal per iniettare la procedura gettext al posto delle stringhe statiche. Se non sbaglio, aggiunge semplicemente un carattere di sottolineatura come funzione, come di seguito.

ShowMessage('Hello'); // before
ShowMessage(_('Hello')); // after

Devo dire che sono passati 2 anni dall'ultimo utilizzo di questo metodo.

Una cosa rimarrà problematica, i componenti Delphi non sono abilitati all'unicode (D2009 lo risolve), quindi quando non cambi i componenti avrai comunque un supporto limitato per altre lingue.

Altri suggerimenti

Stiamo usando TsiLang e ne siamo molto soddisfatti.

Uno dei punti migliori è che puoi pre-tradurre il progetto con un dizionario (che hai compilato da traduzioni esistenti).

Una buona soluzione gratuita sarebbe GNU gettext per Delphi . Ha alcune capacità non presenti in TsiLang - ad esempio, puoi mettere le conoscenze su come contare le cose (finali diversi per uno, due, quattro, centodue, molti ...) nel file di traduzione in modo da non " devo insegnare ad ogni programma a conoscere queste cose.

La licenza per la parte Delphi è molto permissiva, ma non sono sicuro di quanto le cose GNU incluse influenzeranno la tua applicazione.

Ottieni Multilizer . È realizzato in Delphi e può gestire programmi Delphi come nessun altro con un supporto speciale per VCL. Puoi anche rifare gli schermi facilmente per ogni lingua. Con Multilizer puoi utilizzare diverse tecniche per tradurre ed eseguire il tuo programma.

Delphi 2009 ha aggiunto un Integrated Translation Environment / External Translation Manager ITE ed ETM sono ora disponibili sia per Delphi che per C ++ Builder.

Nell'articolo di Codegear: Novità in Delphi e C ++ Builder 2009 , dichiarano :

  

L'ambiente di traduzione integrato   (ITE) è una parte dell'IDE che   semplifica la localizzazione dei tuoi progetti.   ITE può creare un nuovo progetto localizzato   da un progetto esistente. ITE no   tradurre automaticamente il testo, ma   fornisce una finestra di dialogo che elenca tutto il testo   che deve essere localizzato e campi   in cui inserire il corrispondente   testo tradotto. Una volta entrato   il testo tradotto e costruito il   progetto localizzato, puoi impostarne un altro   lingua attiva e visualizza un modulo in   il testo localizzato; non devi   cambia locale e riavvia il sistema.   Questo ti permette di esibirti   localizzazione senza richiedere a   sistema localizzato.

     

The External Translation Manager (ETM)   è un'applicazione autonoma che funziona   con file DFM e stringhe di testo in   codice sorgente. Anche se ETM no   consentire di creare un nuovo localizzato   progetto, fornisce una finestra di dialogo   elencando il testo localizzato e il   testo tradotto, in modo simile a ITE.

Questo è quello che ho intenzione di provare prima una volta che sono arrivato al punto in cui voglio internazionalizzare il mio prodotto.

Tuttavia, per me la parte facile è tradurre il programma. La parte difficile è tradurre il file della guida.

Direi GNU gettext per Delphi in combinazione con TMS Unicode Component Pack (precedentemente gratuito sotto TntWare) per ottenere il supporto Unicode nei componenti.

Per lavorare con, o far lavorare i traduttori, i file gettext che consiglio di consultare la multipiattaforma gratuita Poedit che può modificare i file .po.

Solo per citare cxLocalizer se possiedi componenti DexExpress.

Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a StackOverflow
scroll top