IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

ASP.NET Discussion :

Traduire un site web sans fichier de ressource


Sujet :

ASP.NET

  1. #1
    Membre du Club
    Profil pro
    Inscrit en
    Mars 2006
    Messages
    44
    Détails du profil
    Informations personnelles :
    Âge : 45
    Localisation : France

    Informations forums :
    Inscription : Mars 2006
    Messages : 44
    Points : 45
    Points
    45
    Par défaut Traduire un site web sans fichier de ressource
    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 :
    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
    Merci pour votre aide.
    Biz

  2. #2
    Membre habitué

    Inscrit en
    Avril 2007
    Messages
    30
    Détails du profil
    Informations forums :
    Inscription : Avril 2007
    Messages : 30
    Points : 156
    Points
    156
    Par défaut re.: Traduire un site web sans fichier ressource
    Tu peux toujours rajouter une méthode dans ta page et ensuite produire toutes tes pages en héritant de l objet nouvelle page. Ou utiliser un web user controle invisible avec ta méthode et rajouter ce contrôle partout. Comme cela tu réutilise ton code!

  3. #3
    Membre expérimenté

    Homme Profil pro
    kiné passionné de dev
    Inscrit en
    Mars 2006
    Messages
    1 570
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 35
    Localisation : France

    Informations professionnelles :
    Activité : kiné passionné de dev

    Informations forums :
    Inscription : Mars 2006
    Messages : 1 570
    Points : 1 738
    Points
    1 738
    Billets dans le blog
    1
    Par défaut
    Ou alors, à créer ça peut prendre un peu de temps mais tu peux utiliser une fonction qui se trouverait dans une autre classe, qui permette ça.

    Edit: ah je crois que j'ai dit une connerie
    Petit poulain devient grand de jour en jour...

    Petit Poulain, ce n'est que pour les intimes!

Discussions similaires

  1. Réponses: 4
    Dernier message: 17/06/2009, 13h44
  2. naviguer dans un site web sans connexion internet
    Par ALIAS200 dans le forum Internet
    Réponses: 13
    Dernier message: 26/04/2009, 15h03
  3. gérer un site web sans passer par le code
    Par beta1204 dans le forum Débuter
    Réponses: 11
    Dernier message: 07/04/2009, 14h21
  4. Hébergement de site web sans avoir de FAI
    Par Gilles Louïse dans le forum Hébergement
    Réponses: 4
    Dernier message: 04/06/2008, 17h40
  5. Réponses: 19
    Dernier message: 28/01/2005, 09h52

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo