Ciao a tutti.
Due brevi premesse; sono un assoluto neofita, quindi mi voglio scusare per la poca padronanza del "gergo" tecnico. Spero di riuscire a farmi capire lo stesso.
La seconda premessa è rivolta ai MODERATORI. Qui sono mischiati un po' di ASP e un po' di VB, ho scelto di postare qui, spero di non aver sbagliato.
Sto collaborando allo sviluppo di un'applicazione Web. Il problema nasce dal fatto che va fatta in due lingue più una; due fisse, più una editabile dall'utente. Cosi abbiamo inserito nel DB una tabella, che si può gestire direttamente dall'applicazione, in modo che, ad es in Spagna, gli spagnoli possano vedere tutto il testo in Italiano e Inglese, e poter inserire la traduzione in spagnolo subito a fianco. Per fare ciò, abbiamo una funzione che, quando applicata, copia il testo originale, in Inglese, nell'apposito campo nella tabella delle traduzioni, poi, una volta compilati, da parte dell'uetnte, i campi delle altre lingue, si occupa di sostituire il testo visualizzato nell'applicazione con quello corrispondente alla lingua selezionata dall'utente.
Eccola qui
Public Function get_local_name(ByVal description_name, ByVal lng) As String
Try
Dim lacze As New SqlConnection
lacze.ConnectionString = con
lacze.Open()
Dim sql_comm As New SqlCommand
sql_comm.Connection = lacze
sql_comm.CommandType = CommandType.Text
Select Case UCase(lng)
Case Is = "IT"
sql_comm.CommandText = "select local_name_it from local_name where local_name = '" & description_name & "'"
Case Is = "EN"
sql_comm.CommandText = "select local_name_en from local_name where local_name = '" & description_name & "'"
Case Else
sql_comm.CommandText = "select local_name_int from local_name where local_name = '" & description_name & "'"
End Select
Dim rst As SqlDataReader = sql_comm.ExecuteReader
Dim il As Boolean = rst.Read()
If il Then
If rst.IsDBNull(0) Then
get_local_name = description_name
Else
get_local_name = rst.GetValue(0)
End If
Else
insert_local_name(description_name)
get_local_name = description_name
End If
lacze.Close()
Catch ex As Exception
get_local_name = description_name
End Try
End Function
Ora, devo tradurre le intestazioni delle colonne di diverse tabelle. Finché si tratta di usare un controllo Gridview (in ASP), non abbiamo avuto problemi ad applicare la funzione. Ad es.
Private Sub GV_customers_RowDataBound(ByVal sender As Object, ByVal e As System.Web.UI.WebControls.GridViewRowEventArgs) Handles GV_customers.RowDataBound
If e.Row.RowType = DataControlRowType.Header Then
e.Row.Cells(0).Text = get_local_name("Code", lng)
e.Row.Cells(1).Text = get_local_name("Name", lng)
e.Row.Cells(2).Text = get_local_name("Adress", lng)
e.Row.Cells(3).Text = get_local_name("Postal Code", lng)
e.Row.Cells(4).Text = get_local_name("Town", lng)
e.Row.Cells(5).Text = get_local_name("Province", lng)
e.Row.Cells(6).Text = get_local_name("Nation", lng)
e.Row.Cells(7).Text = get_local_name("VAT Number", lng)
e.Row.Cells(8).Text = get_local_name("Is Active", lng)
End If
End Sub
Il problema è con Listview. Non so come richiamare le intestazioni delle colonne. Mi potete aiutare? Grazie