Bonjour,
Je souhaite réaliser une application en plusieurs langues c'est-à-dire que mes labels et autres informations se mettront dans la langue choisie par l'utilisateur dans une liste.
Je ne peux pas utilisée de fichiers de ressources car des administrateurs peuvent à tout moment modifier des labels donc tous les libellés doivent être stockés en table dans une base de données.
J'utilise donc une fonction pour effectuer la traduction.
Le hic, c'est que je ne suis pas experte ASP.NET donc je suis obligée de copier/coller ma fonction dans toutes mes pages car je n'arrive pas à modifier des contrôles d'une page à partir d'une classe.
Pourriez-vous m'aider à trouver une solution qui m'évite d'effectuer un copier/coller ??
Voici ma fonction :
Merci pour votre aide.
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75 'Cette procédure permet de traduire les contrôles de la page Private Sub TranslatePage(ByVal PageName As String) 'Filtre le DataView sur le nom de la page Dim dtsLabel As DataSet = Application("DS_LABEL") Dim dtvLabel As DataView = dtsLabel.Tables("tabLabel").DefaultView dtvLabel.RowFilter = "ELBL_PAGE = '" & PageName & "'" 'Définition des variables Dim myContent As ContentPlaceHolder = CType(Master.FindControl("main"), ContentPlaceHolder) Dim myControl As Control Dim myCtrlText As String Dim myLabel As Label Dim myLinkButton As LinkButton Dim myButton As Button Dim myRadioButton As RadioButton Dim myRadioButtonList As RadioButtonList Dim myGridView As GridView Dim myReqFldVld As RequiredFieldValidator Dim myRegExpVld As RegularExpressionValidator Dim myCompVld As CompareValidator Dim myVldSumm As ValidationSummary Dim j As Long = 0 'Pour chaque ligne du DataView For Each rowView As DataRowView In dtvLabel 'Recherche le contrôle dans la page myControl = myContent.FindControl(rowView("ELBL_NAME")) myCtrlText = rowView("ELBL_TEXT_" & Session("VG_USERLANG")) j = rowView("ELBL_INDEX") 'Si le contrôle existe, on le traduit en fonction de son type If Not myControl Is Nothing Then Select Case rowView("ELBL_TYPE") Case "Label" myLabel = CType(myControl, Label) myLabel.Text = myCtrlText Case "LinkButton" myLinkButton = CType(myControl, LinkButton) myLinkButton.Text = myCtrlText Case "Button" myButton = CType(myControl, Button) myButton.Text = myCtrlText Case "RadioButton" myRadioButton = CType(myControl, RadioButton) myRadioButton.Text = myCtrlText Case "RadioButtonList" myRadioButtonList = CType(myControl, RadioButtonList) myRadioButtonList.Items(j).Text = myCtrlText Case "GridView" myGridView = CType(myControl, GridView) myGridView.Columns(j).HeaderText = myCtrlText Case "RequiredFieldValidator" myReqFldVld = CType(myControl, RequiredFieldValidator) myReqFldVld.ErrorMessage = myCtrlText Case "RegularExpressionValidator" myRegExpVld = CType(myControl, RegularExpressionValidator) myRegExpVld.ErrorMessage = myCtrlText Case "CompareValidator" myCompVld = CType(myControl, CompareValidator) myCompVld.ErrorMessage = myCtrlText Case "ValidationSummary" myVldSumm = CType(myControl, ValidationSummary) myVldSumm.HeaderText = myCtrlText Case Else 'LE CONTRÔLE NE SERA PAS TRADUIT End Select Else 'Affiche le nom de la page If (rowView("ELBL_NAME") = "TitlePage") Then Me.Title = myCtrlText End If Next End Sub
Biz
Partager