Skip to content
| Marketplace
Sign in
Visual Studio>Tools>Gestione Lingua Automatizzato
Gestione Lingua Automatizzato

Gestione Lingua Automatizzato

Michele Iacobino

|
301 clicks
| (0) | Free
Più che una vera e propria estensione si tratta di alcune classi per gestire le lingue nelle proprie applicazioni. Nella classe sono comprese varie routin oltre che per la gestione delle maschere, bottoni, tabcontrol, etc. anche per la gestione dei Messaggi, Date e Numeri.
Get Started

Qualche tempo fa' mi sono dovuto cimentare nel creare un software multilingua per un mio cliente, a tal fine ho creato un modulo che inserisco nelle mie applicazioni e che mi permette di gestire semplicemente la lingua editando un file ini appositamente creato.

questo è il link http://www.nsmsolutions.it/site/Download/GestioneLingua.zip

è composto sostanzialmente da una classe chiamata GestioneLingua che espone i seguenti metodi:


Messaggi(ByVal Maschera As String, ByVal Evento As String, Optional ByVal Lingua As String = "Italiano", Optional ByVal Opzione As Byte = 0, Optional ByVal Valore As String = "")  As String

LabelNomi(ByVal Maschera As String, ByVal Elemento As String, Optional ByVal Lingua As String = "Italiano", Optional ByVal Opzione As Byte = 0, Optional ByVal Valore As String = "") As String

RichiamaLingua(ByVal FormOrigine As Form)
                      (ByVal OggettoOrigine As Control)
                      (ByVal MenuOrigine As MenuStrip, ByVal OggettoOrigine As Form)
                      (ByVal BarraOrigine As ToolStrip, ByVal OggettoOrigine As Form, Optional ByVal Visibile As Boolean = True)
                      (ByVal BarraOrigine As ToolStripSplitButton, ByVal OggettoOrigine As Form)
                      (ByVal MenuOrigine As ToolStripDropDownItem, ByVal OggettoOrigine As Form)
                      (ByVal SBOrigine As StatusStrip, ByVal OggettoOrigine As Form)

NumeriDateOre()

ho dichiarato anche queste strutture Pubbliche per la gestione di date e numeri

Public Structure TipoDateOre
        Dim DataBreve As String
        Dim DataLunga As String
        Dim DataEstensa As String
        Dim OraBreve As String
        Dim OraLunga As String
        Dim SQL As String
End Structure
Public Structure TipoNumeri
        Dim Generico As String
        Dim Decimale1 As String
        Dim Decimale2 As String
        Dim Decimale4 As String
        Dim Perc1 As String
        Dim Perc2 As String
        Dim Perc3 As String
        Dim Valuta As String
End Structure

Public LinguaSistema As String = "Italiano", FormatoNumeri As TipoNumeri, FormatoDate As TipoDateOre


In pratica può essere usato in questa maniera:
al caricamento (meglio come prima riga del FormLoad o comunque non prima di InizializateComponent del New) del form richiamate la funzione GestioneLingua.RichiamaLingua(Me) questa funzione farà un controllo dell'intera maschera, comprendendo Label, ControlPannel, Check/Options Box, etc., e li inserirà in un file Ini denominato in base all'impostazione della variabile LinguaSistema nella stessa cartella dell'eseguibile (NB.: A tal proposito ricordatevi di includere il file creato nella distribuzione del programma).
(se non diversamente specificato il programma creerà automaticamente un file Italiano.Ini)

La prima volta che avviate il form il caricamento vi sembrerà più lento del previsto, ma è solo perchè farà un controllo delle varie voci e non trovandole le dovrà creare perdendo un po' di tempo, in seguito il problema sarà impercettibile.

Di base verranno inseriti nel file i testi che avete dato in fase di progettazione
Es.: se avete inserito una Label1 che come valore Text ha "pippo" nel Form1 all'interno del File ini troverete:

[Form1]
NomeForm=Form1
Label1=pippo

NB.: Una volta usata questa funzione ricordatevi che per cambiare il testo di un qualsiasi oggetto dovrete farlo nel file INI e non più direttamente nella progettazione maschera.

Per LabelNomi e Messaggi ho tenuto come impostazione Maschera come nome del form origine (me.name) in modo da raggruppare nella medesima sezione tutti i messaggi e le label derivanti dal medesimo Form.

Se opportunamente usato è semplice riuscire poi a termine della fase di progettazione trasformare l'intero programma in qualsiasi lingua semplicemente  facendo 3 quasi semplici operazioni:

1)Rinominare il file inizialmente creato;
2)Cambiare la voce Maschera sotto la sezione [Lingua];
3)Tradurre le varie voci del file ini lasciando inalterate le chiavi (operazione lunga e noiosa, ma relativamente semplice).


Pur non essendo commentato (hai me mia brutto vizio) il codice credo che sia abbastanza chiaro, se qualcuno volesse fare delle correzioni migliorative ben libero di farlo e magari condividere con gli altri le proprie migliorie.

Spero che vi possa risultare utile.


Ho aperto anche un forum su sociale.microsoft.comall'indirizzo http://social.microsoft.com/Forums/it-IT/visualbasicit/thread/3a646ee9-1c8d-4a27-95d6-b540d8ccf795

Aspetto i vostri Feedback in merito.

  • Contact us
  • Jobs
  • Privacy
  • Manage cookies
  • Terms of use
  • Trademarks
© 2025 Microsoft