Newsgroup: it.comp.lang.delphi
Titolo: Localizzazione applicazione

Ciao,
   dovrei realizzare un'applicazione da utilizzare per persone non 
italiane. Per ora ho sempre ricompilato la consts.pas per avere Yes=Si 
ecc. Adesso la cosa è un po' più complessa e devo trovare una soluzione.
Mi date una dritta?
Grazie



Prova questo
http://kryvich.googlepages.com/index.html
Abbastanza semplice e gratuito per ogni tipo di uso.


Ciao,
	in azienda abbiamo da poco concluso l'internazionalizzazione di un 
gruppo di progetti sviluppati in ambiente Delphi.
Devo dire che ho esaminato solo il sistema di internazionalizzazione e 
localizzazione offerto da Delphi. Mi e' infatti sembrato sufficiente e 
appropriato, cosi' non mi sono posto il problema di valutare altre 
alternative.
Riassumendo, Borland suggerisce di dividere il lavoro in due fasi:
	- INTERNAZIONALIZZAZIONE: implementazione di tutte le modifiche 
necessarie affinche' l'applicazione sia localizzabile;
	- LOCALIZZAZIONE: produzione di una o piu' versioni localizzate 
dell'applicazione.
Tipicamente la prima fase (INTERNAZIONALIZZAZIONE) consiste di tre 
attivita':
1. Enable code:
	si tratta principalmente di far si che le variabili di tipo stringa 
possano gestire qualsiasi set di caratteri. In funzione di alcuni 
fattori quindi si deve scegliere quale tipo di dato utilizzare per 
questo tipo di variabili (es.: WideString).
2. Design GUI:
	in pratica internazionalizzare la GUI, ad esempio: modificare la 
larghezza di componenti TEdit che hai calibrato solo in funzione della 
lingua con cui hai sviluppato (es.: _tipicamente_ le stringhe in Inglese 
hanno un minor numero di caratteri rispetto alle corrispondenti in altre 
lingue).
Un altra attivita' importante in questo ambito e' quella della gestione 
variabile dei formati data e degli ordinamenti... Eh si, in Spagnolo, ad 
esempio, l'ordinamento alfabetico di una sequenza di stringhe non segue 
gli stessi criteri dell'Italiano.
Altri aspetti andrebbero considerati in questa fase come: gestione di 
immagini della GUI contenenti testo, e mapping della tastiera.
3. Isolating Resources
	consiste nell'isolamento delle costanti stringa per messaggi utente, 
eccezioni, componenti variabili della GUI (ad esempio il titolo di una 
form che varia in funzione di certi parametri etc.).
Queste costanti dovrebbero essere dichiarate come 'resourcestring' e non 
'const' e raggruppate _logicamente_ in moduli di codice sorgente 
separati che vengono inclusi dalle altre unit del progetto.
OK, adesso viene il bello. Premetto che, se per il momento non hai 
bisogno di localizzare per culture con set di caratteri diversi dal 
nostro, (ad esempio vuoi solo fare una versione inglese e una italiana 
del programma)... beh puoi tranquillamente saltare il punto (1) e 
gestire solo il primo paragrafo del punto (2). Il punto (3) invece deve 
essere gestito completamente.
Una volta che hai fatto questo devi preparare il lavoro per la 
LOCALIZZAZIONE. Delphi ti mette a disposizione il "Resource DLL Wizard" 
(File->New->Other->Resource DLL Wizard).
Devi utilizzare questo tool per la creazione di una DLL contenente tutte 
le risorse dell'applicazione. Le form incluse nel progetto verranno 
automaticamente incluse, cosi' come tutte le 'resourcestring' di cui 
sopra. In piu' potrai aggiungere altri moduli di codice sorgente (es.: 
form non incluse direttamente nel progetto). Alla fine del lavoro il 
Wizard genera un progetto per una o piu' versioni localizzate delle 
risorse della tua applicazione. Se compilato, questo progetto genera un 
particolare tipo di DLL, con lo stesso nome dell'applizazione, ma con 
estensione caratterizzante la localizzazione (es.: ENU, DES, ITA etc.).
Il tuo lavoro ora e' completo. Delphi mette a disposizione del 
traduttore un tool, "External Translation Manager", che, anche senza 
Delphi installato, permette di editare queste particolari DLL al fine di 
tradurre le risorse stringa in esse contenute che comprendono, ad 
esempio, quelle dichiarate da te, ma anche quelle di sistema (ad es.: 
"Database Error" o "Yes").
Una volta tradotte le risorse, ricompilando, avrai le DLL localizzate 
che devono essere collocate nella stessa directory dell'eseguibile. 
All'avvio del programma, il sistema di esecuzione carica la DLL la cui 
estensione corrisponde alla localizzazione del sistema operativo.
Se non la trova, esegue l'applicazione con le risorse predefinite 
(quelle con cui e' stata sviluppata).
Io mi sono trovato bene.
Il tutto (e _molto_ di piu') e' spiegato accuratamente nell'help on-line 
e nel manuale. Ho cercato di riassumere per darti un idea.
Nel manuale trovi tutto nel capitolo 17.
Ci sono altre cosettine di cui tener conto ma in linea di massima questo 
mi sembra sufficiente. Se hai bisogno... posta.
HTH,
baba.

 Ho cercato di riassumere per darti un idea.
Grazie per il riassunto :-)
-- 
Morde


Si, me lo dicono tutti che sono un po' prolisso... :-)
Comunque colgo l'occasione per aggiungere che la procedura indicata e' 
relativa all'utilizzo di Delphi 7, almeno questa e' la versione di 
Delphi con cui l'ho utilizzata.
Non so quali siano gli strumenti disponibili con le versioni successive.
Ciao,
baba.

 Si, me lo dicono tutti che sono un po' prolisso... :-)
In realtà intendevo proprio ringraziarti ;-), sono info che arrivano
direttamente da uno che l'ha fatta quella cosa.. quindi niente di piu'
"pregiato" per chi, in futuro, dovesse partire da zero.
Ciao 
-- 
Morde