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

Contribuez Discussion :

Intégration Multi Language


Sujet :

Contribuez

  1. #1
    Membre averti Avatar de robyseb
    Homme Profil pro
    Programmeur-Analyste
    Inscrit en
    Juillet 2011
    Messages
    305
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 47
    Localisation : Canada

    Informations professionnelles :
    Activité : Programmeur-Analyste
    Secteur : Distribution

    Informations forums :
    Inscription : Juillet 2011
    Messages : 305
    Points : 423
    Points
    423
    Par défaut Intégration Multi Language
    Bonjour ! Je me propose de vous montrer comment instaurer du multi-langue dans vos applications.
    Un des gros avantage de tous ceci est de pouvoir modifier certain mot directement dans une table et il se reflète partout où ce mot ou cette phrase est utilisé. Voici comment je m'y prend.

    Premièrement il faut créer un module que nous allons appelle "Mod_Langage" avec en entête du module une variable public "Public langageChoix As String" qui elle sera accessible de toute la base.

    À L'intérieur de celuil-ci :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    Option Compare Database
    Option Explicit
    Public langageChoix As String
     
    Public Function trouverlangage(numero As String)
    langageChoix = Nz(DLookup("langage", "admin"), "")
    trouverlangage = Nz(DLookup(numero, "langage", "Langue = '" & langageChoix & "'"), "")
    End Function
    En bref "Langagechoix" recherche dans une autre table qui contient plusieurs de mes variables statique le langage par défault enregistrer.

    Ensuite "trouverlangage" recherche le mot à inscrire dans vos étiquettes,bouton,onglet etc.. selon le langage par défault que contient la variable global "Langagechoix" ! Chaque mot est inscrit dans une table que j'ai nommé "Langage".

    La table "Langage" comporte plusieurs champs nommés ici T1-T2 etc..
    La table comporte 2 enregistrements ou plus soit pour moi :
    1. Anglais
    2. Francais


    P.s. Si vous désiré mettre des "_" sous une lettre d'un bouton afin de créer un racourci clavier il ne suffit que de le rajouter dans le champ de votre table ex: "&Quit".

    Dans chaque formulaire j'ai créer un sub privé appellé "AffectLangue" :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    Private Sub affectlangue()
     
    Me.quitter.Caption = trouverlangage("T1") 'Exemple sera "Quitter" en Francais et "Quit" en anglais
    Me.entrer.Caption = trouverlangage("T2")
    Me.ClvVirtuel.Caption = trouverlangage("T5")
    Me.MotdepasseE.Caption = trouverlangage("T7") & " :" 'Ici le & " :" insère le ":" juste après le mot
    Me.miseengarde.Caption = trouverlangage("T8")
    Me.identifiantE.Caption = trouverlangage("T9") & " :"
     
    End Sub
    Qui celui-ci est appelé dans les procédure tel que "Form_Load" et aussi dans la procédure "AfterUpdate" de la liste déroulante, contenant le choix de langage exemple : "Anglais, Français".

    Je travaille présentement à élaborer une base exemple, mais elle ne sera pas prête bientôt. D'ici là, essayé mon tutoriel et si vous avez des questions ne vous gêner surtout pas. J'aime bien les commentaires.

    Cordialement,

  2. #2
    Invité
    Invité(e)
    Par défaut
    Bonjour

    Idée intéressante, mais je voudrais voir l'impact sur un formulaire, quand il y a une grande différence de nombres de caractères entre deux langues, par exemple dans une étiquette, etc...

    Comment vas-tu gérer l'affichage ?

    Philippe

  3. #3
    Membre averti Avatar de robyseb
    Homme Profil pro
    Programmeur-Analyste
    Inscrit en
    Juillet 2011
    Messages
    305
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 47
    Localisation : Canada

    Informations professionnelles :
    Activité : Programmeur-Analyste
    Secteur : Distribution

    Informations forums :
    Inscription : Juillet 2011
    Messages : 305
    Points : 423
    Points
    423
    Par défaut
    Bonjour Phil,

    Justement j'avait pensé à la même chose, et c'est une problématique !!

    je pensait à créer une fonction qui lorsque nous déclenchons "AffectLangue" calculerai la dimension avant changement du language et par le fait même trouver le centre du contrôle pour ensuite le redimensionner et le re-centrer.

    Mais je t'avoue ne pas savoir par ou commencer loll

  4. #4
    Membre chevronné

    Profil pro
    Inscrit en
    Avril 2006
    Messages
    1 399
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Avril 2006
    Messages : 1 399
    Points : 2 221
    Points
    2 221
    Par défaut
    Généralement, on ne se prend pas la tête avec cette considération, on fait suffisamment large et/ou haut pour contenir le texte le plus long...

    Philippe

  5. #5
    Membre averti Avatar de robyseb
    Homme Profil pro
    Programmeur-Analyste
    Inscrit en
    Juillet 2011
    Messages
    305
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 47
    Localisation : Canada

    Informations professionnelles :
    Activité : Programmeur-Analyste
    Secteur : Distribution

    Informations forums :
    Inscription : Juillet 2011
    Messages : 305
    Points : 423
    Points
    423
    Par défaut
    Bonjour ! Pour l'instant ce n'est pas une grande priorité, mais je dirait que ca fonctionne merveilleusement bien à date.

    j'ai intégré ma fonction dans le module Systray de Arkham46 ICI

    et les résultat me réjouissent

    Bientôt la base test

  6. #6
    Membre averti Avatar de robyseb
    Homme Profil pro
    Programmeur-Analyste
    Inscrit en
    Juillet 2011
    Messages
    305
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 47
    Localisation : Canada

    Informations professionnelles :
    Activité : Programmeur-Analyste
    Secteur : Distribution

    Informations forums :
    Inscription : Juillet 2011
    Messages : 305
    Points : 423
    Points
    423
    Par défaut
    Bonjour ! En pièce jointe la base exemple version 2002-2003

    j'ai rajouté une fonction qui empêche le chargement d'une langue vide en recherchant dans 2 champs différents :

    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
    Public Function isempty(languechoisi As String) As Boolean
    isempty = False
     
    Dim test1 As String
    Dim test2 As String
    'Cette Fonction à pour but d'empêcher l'affectation d'aucune donnée !!
    test1 = Nz(DLookup("T1", "langage", "Langue = '" & languechoisi & "'"), "")
    test2 = Nz(DLookup("T2", "langage", "Langue = '" & languechoisi & "'"), "")
     
        If IsNull(test1) Or test1 = "" Or IsNull(test2) Or test2 = "" Then
            isempty = True
        ElseIf Not IsNull(test1) Or test1 <> "" Or Not IsNull(test2) Or test2 <> "" Then
            isempty = False
        End If
    End Function
    elle est lancé dans le sub Afterupdate des listes déroulantes de choix de langage:

    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
    Private Sub langage_AfterUpdate()
    Dim languetemp As String
    languetemp = Nz(DLookup("languedefault", "langage"), "Francais")
     
        If isempty(Me.langage.Value) = True Then
     
                MsgBox "Il n'y a aucune donnée à affiché !" & _
                vbCrLf & "Changement du langage abandonnée", vbCritical, fverProduit
            Me.langage.Value = languetemp
            Exit Sub
        Else
            Dim matable As Recordset
                            Set matable = CurrentDb.OpenRecordset("Langage")
                                matable.Edit
                                   matable("LangueDefault") = Me.langage.Value
                                matable.update
                                matable.Close
            Set matable = Nothing
            affectlangue
        End If
    End Sub
    au plaisir de recevoir vos commentaires

    Robyseb
    Fichiers attachés Fichiers attachés

Discussions similaires

  1. [MySQL] php5 et mysql avec multi-language
    Par kate59 dans le forum PHP & Base de données
    Réponses: 6
    Dernier message: 01/02/2011, 14h29
  2. Table Multi Language
    Par PascalLoiselle dans le forum MS SQL Server
    Réponses: 2
    Dernier message: 23/08/2007, 13h40
  3. Connexion multi language
    Par kenny279 dans le forum Administration-Migration
    Réponses: 1
    Dernier message: 25/08/2006, 11h11
  4. [Inno Setup / Is Tool] Installeur multi-languages
    Par kurul1 dans le forum Installation, Déploiement et Sécurité
    Réponses: 3
    Dernier message: 06/07/2006, 08h45
  5. multi language ?
    Par baert dans le forum Eclipse Java
    Réponses: 6
    Dernier message: 16/02/2004, 17h39

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