View Full Version : [c#] Form multilingua
DuHarTapt
17-04-2009, 20:02
Dovrei fare lo stesso form in tre lingue diverse.
Il form prevede 4 bottone che, se premuti, a seconda della lingua caricano file diversi.
Quale è l'approcio migliore per gestire questa cosa?
Avere tre form separati?
Avere una marea di if(lingua == ) all'interno dello stesso form?
Altro?
:)
Non è necessario, puoi gestire la localizzazione di una Form attraverso la creazione di files .resx diversificati per ogni Lingua che desideri implementare.
In fase di compilazione questo procedimento crea una DLL ( nomeDll.resource.dll ) per ogni Lingua inserita.
- E' necessario che la Form abbia anzitutto Localizable = true.
- A questo punto disegna i vari controlli sulla Form. Quando li hai inseriti tutti, seleziona sulla Form una Lingua, dalla proprietà Language.
Ora immetti, per tutti i controlli che ad es. prevedono un .Text localizzato, le rispettive proprietà .Text per quella Lingua.
- Ripeti il procedimento del punto precedente per ogni Lingua da implementare.
Al termine inserisci una semplice procedura che applicherà la Lingua selezionata :
private void ApplicaLingua(string lingua)
{
foreach (Control C in this.Controls)
{
ComponentResourceManager RES = new ComponentResourceManager(typeof(Form1));
RES.ApplyResources(C, C.Name, new System.Globalization.CultureInfo(lingua));
}
}
Che viene usata, ad esempio, così :
// ITA
ApplicaLingua("it-IT");
;)
Ciao MarcoGG,
ho utilizzato il tuo procedimento in VB.NET e tutto funziona correttamente ma se dovrei farlo per un form MDI come dovrei procedere?
Per esempio ho il form principale MDI che ha due pulsanti italiano e inglese che al loro evento traduce tutti gli altri form in esso aperti oppure quando verranno aperti.
vBulletin® v3.6.4, Copyright ©2000-2025, Jelsoft Enterprises Ltd.