Visualizzazione dei risultati da 1 a 7 su 7
  1. #1
    Utente di HTML.it
    Registrato dal
    Mar 2004
    Messaggi
    7

    Gestione Multilingue

    Ho realizzato un SW in Visual Basic e adesso mi hanno chiesto di gestire più lingue.
    Quindi dover cambiare le intestazioni dei grddatagrid,txtfields ed altro.
    Qualcuno mi potrebbe indicare una strada??
    Intanto iniziare a cambiare le intestazioni dei grddatagrid ecc.

  2. #2
    Utente di HTML.it L'avatar di Gugu
    Registrato dal
    Nov 2002
    Messaggi
    523
    Io ho fatto una applicazione molto complessa multilingua.
    Io non ho fatto altro che crearmi un database access dove ho le colonne: ID, Italiano, Inglese, Francese, ecc.. tutte le lingue che vuoi.
    Quando popoli il database carichi i dati dalla colonna relativa alla lingua scelta. Ovviamente nell'evento load di ogni form o ad ogni cambio di lingua devi lanciare una funzione che carica i dati da un'altra colonna e fa il refrash della form eventualmente visualizzata.
    I contro sono che se hai molto codice da scrivere a loop per caricarti i testi, i pro che hai un'applicazione che cambia lingua con estrema facilità, tipo cellulare.
    Bisognerebbe stabilire se vuoi avere un'applicazione multilingua perchè vuoi poterla cambiare quando vuoi, oppure se vuoi che sia diversa se viene installata su sistemi operativi in lingue diverse!
    Questo è fondamentale: in tal caso, appoggindoti ad un database hai anche la briga di andare a leggere la lingua dell'OS.. in tal caso ci sono strade migliori --> vedi i sorgenti del file setup1 che serve per installare applicazioni vb6 e che hai nel tuo pc sotto c:\programmi\visual studio\... ecc..

    Ciao
    Andrea

  3. #3
    benvenuto/a mimpa
    Ti invito a leggere il regolamento del forum (< QUI >) con particolare attenzione alla sezione riguardante i titoli delle discussioni: il linguaggio DEVE essere specificato nel titolo.

    05.08.2005 - by alka
    Auguri all'angelo custode dei moderatori.

  4. #4
    Utente di HTML.it L'avatar di Gugu
    Registrato dal
    Nov 2002
    Messaggi
    523
    Hai ragione LadyBlu..
    ho dato per scontato che fosse vb6.. chi sa perchè!?

    Comunque se fosse vb.net stessa cosa, o con un database (vedi sopra) altrimenti con le gestione delle lingue di vb.net che seguono la lingua di default dell'OS ma che si può anche cambiare runtime.

    Ciao
    Andrea

  5. #5
    Utente di HTML.it
    Registrato dal
    Mar 2004
    Messaggi
    7

    Scusate

    Grazie della vostra precisazione.
    Io sto lavorando VB6.

  6. #6
    Utente di HTML.it L'avatar di Melly
    Registrato dal
    Mar 2003
    Messaggi
    222
    se i campi non sono tantissimi puoi anche velorizzare nel load delle variabili in una select case a seconda della lingua scelta e richiamarle li dove ti servono

    codice:
    Private Sub PulsanteLingua_Click()
      lingua = "italiano"
    End Sub
    
    Private Sub FrmPrincipale_Load()
      Select Case lingua
      Case "italiano"
         messaggio="ciao"
      Case "spagnolo"
         messaggio="Hola"
      Case "inglese"
         messaggio="Hello"
      End Select
    End Sub
    e poi quando richiami un'eventuale msgbox gli passi direttamente la variabile messaggio
    Aiutami a ritrovare l’interesse per le piccole cose che sono alla base di tutte le promesse del futuro che cresce, perché sono le sfumature a dare vita ai colori e a farci tornare in mente le cose più pure dei giorni migliori

  7. #7
    adesso nei programmi va molto di moda per la gestione multilinguaggio i files .xml

    codice:
    <?xml version="1.0"?>
    <Traduzioni>
    	<italiano>
    		<x1>ciao</x1>
    		<x2>buongiorno</x2>
    	</italiano>
    	<inglese>
    		<x1>hello</x1>
    		<x2>good morning</x2>
    	</inglese>
    	<francese>
    		<x1>salut</x1>
    		<x2>bonjour</x2>
    	</francese>
    </Traduzioni>
    gestirli è relativamente facile

    codice:
    Private Sub traduci()
    Dim MyXml As New MSXML.DOMDocument
    Dim ListaNodi As IXMLDOMNodeList
    Dim Elemento As IXMLDOMElement
    Dim x As IXMLDOMNode
    Dim l As Long
    Dim i As Integer
        If MyXml.Load(App.Path & "\lang.xml") Then
            If mnuIt.Checked = True Then
                Set ListaNodi = MyXml.getElementsByTagName("italiano")
            ElseIf mnuEn.Checked = True Then
                Set ListaNodi = MyXml.getElementsByTagName("inglese")
            ElseIf mnuFR.Checked = True Then
                Set ListaNodi = MyXml.getElementsByTagName("francese")
            End If
            For i = 0 To ListaNodi.length - 1
                Set Elemento = ListaNodi.Item(i)
                
                Set x = Elemento.childNodes(0)
                Label1.Caption = x.Text
                Set x = Elemento.childNodes(1)
                Label2.Caption = x.Text
            Next i
        End If
    End Sub
    Vascello fantasma dei mentecatti nonchè baronetto della scara corona alcolica, piccolo spuccello di pezza dislessico e ubriaco- Colui che ha modificato l'orribile scritta - Gran Evacuatore Mentecatto - Tristo Mietitore Mentecatto chi usa uTonter danneggia anche te

Permessi di invio

  • Non puoi inserire discussioni
  • Non puoi inserire repliche
  • Non puoi inserire allegati
  • Non puoi modificare i tuoi messaggi
  •  
Powered by vBulletin® Version 4.2.1
Copyright © 2025 vBulletin Solutions, Inc. All rights reserved.