I don't know of the pros and cons, but here is how I did it.
I created a class called langHashTable.vb and this code:
Imports System.Data.OleDb
Imports FCNetlearning.Global
Public Class langHashTable
Public Shared hashSwe As New Hashtable
Public Shared hashEng As New Hashtable
Public Shared Sub FillHashTable()
hashSwe.Clear()
hashEng.Clear()
myConnection.Close()
Dim myCommand As New OleDbCommand("Select * From LangTbl", myConnection)
Dim dr As OleDbDataReader
myConnection.Open()
dr = myCommand.ExecuteReader
Dim Swe, Eng As String
While dr.Read()
hashSwe.Add(dr.GetString(0), dr.GetString(1))
hashEng.Add(dr.GetString(0), dr.GetString(2))
End While
myConnection.Close()
End Sub
End Class
I have one Hashtable for each language. In the databasetable I have one key-column and one column for each language. I change language for every component like this:
lbUInst.Text = hashSwe.Item("lbUInst")
where lbUInst is the label and "lbUInst" is the key.