|
|
|
![]() |
|
Strumenti |
![]() |
#1 |
Junior Member
Iscritto dal: Sep 2008
Messaggi: 28
|
[c#] Form multilingua
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? ![]() |
![]() |
![]() |
![]() |
#2 |
Senior Member
Iscritto dal: Dec 2004
Messaggi: 3210
|
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 : Codice:
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)); } } Codice:
// ITA ApplicaLingua("it-IT"); ![]() |
![]() |
![]() |
![]() |
#3 |
Senior Member
Iscritto dal: Jan 2007
Messaggi: 404
|
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. |
![]() |
![]() |
![]() |
Strumenti | |
|
|
Tutti gli orari sono GMT +1. Ora sono le: 21:19.