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

JavaScript Discussion :

Système de traduction côté client


Sujet :

JavaScript

  1. #1
    Membre averti Avatar de mapmip
    Profil pro
    ulla
    Inscrit en
    Juillet 2006
    Messages
    1 325
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations professionnelles :
    Activité : ulla

    Informations forums :
    Inscription : Juillet 2006
    Messages : 1 325
    Points : 345
    Points
    345
    Par défaut Système de traduction côté client
    bonjour,

    je souhaite créer un système de traduction du contenu de mes boites de dialogue qui sont de technologie jquery et alert aussi. Quelles stratégies adopter pour changer la langue des messages par une techno cliente javascript (donc pas de données côté serveur, ni d'appel ajax) ?

    Merci d'avance

  2. #2
    Rédacteur/Modérateur

    Avatar de SylvainPV
    Profil pro
    Inscrit en
    Novembre 2012
    Messages
    3 375
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Novembre 2012
    Messages : 3 375
    Points : 9 944
    Points
    9 944
    Par défaut
    Tu peux passer par du templating, je l'évoque dans un article : http://sylvainpv.developpez.com/tuto...client/#LVII-B

    Sinon il y a aussi le nouvel outil de Mozilla à tester, mais c'est tout récent : http://l20n.org/

  3. #3
    Expert éminent
    Avatar de Watilin
    Homme Profil pro
    En recherche d'emploi
    Inscrit en
    Juin 2010
    Messages
    3 094
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 35
    Localisation : France, Ille et Vilaine (Bretagne)

    Informations professionnelles :
    Activité : En recherche d'emploi

    Informations forums :
    Inscription : Juin 2010
    Messages : 3 094
    Points : 6 755
    Points
    6 755
    Par défaut
    De manière plus traditionnelle dans les projets logiciels multi-langages, on définit au départ une fonction qu'on appelle à chaque fois qu'on a besoin d'afficher du texte. Comme on va l'appeller souvent, on lui donne de préférence un nom court (getPhrase, getText ou simplement text ; j'ai même déjà vu _ tout court).

    Cette fonction renvoie le texte traduit dans la bonne langue en fonction d'une constante au début du code, ou d'un fichier de configuration dans le dossier, ou autre. Les différents bouts de textes traduits sont stockés dans une base de données ou des fichiers statiques.

    Par exemple avec les extensions Firefox, les langues sont stockées dans des fichiers .properties. Voici un extrait du fichier firebug.properties de Firebug pour la langue française :
    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
    Firebug=Firebug
    # LOCALIZATION NOTE (WindowTitle): Title of detached Firebug window.n\n
    # %S Title of the associated web page.n\n
    # examples: Firebug - Googlen\n
    WindowTitle=Firebug - %S
    # Panel titlesn\n
    Panel-console=Console
    panel.tip.console=Observer les messages de la console et exécuter des commandes JavaScript
    Panel-net=Réseau
    panel.tip.net=Analyser le trafic réseau
    Panel-html=HTML
    panel.tip.html=Inspecter et modifier les nœuds DOM
    Panel-stylesheet=CSS
    panel.tip.stylesheet=Inspecter et modifier les feuilles de style CSS
    Panel-script=Script
    panel.tip.script=Déboguer du JavaScript
    Panel-dom=DOM
    panel.tip.dom=Inspecter et modifier des propriétés DOM
    Panel-css=Style
    panel.tip.css=Inspecter et modifier les règles CSS du nœud DOM sélectionné
    Panel-computed=Calculé
    panel.tip.computed=Inspecter les valeurs CSS calculées du nœud DOM sélectionné
    Panel-layout=Apparence
    panel.tip.layout=Inspecter et modifier les données d'apparence du nœud DOM sélectionné
    Panel-domSide=DOM
    panel.tip.domSide=Inspecter et modifier les propriétés DOM du nœud DOM sélectionné
    Panel-watches=Espions
    panel.tip.watches=Inspecter les variables JavaScript disponibles dans la pile actuelle et définir des expressions espion
    Panel-breakpoints=Points d\'arrêt
    panel.tip.breakpoints=Modifier les points d'arrêt
    Panel-callstack=Pile
    panel.tip.callstack=Observer la pile d'appel JavaScript actuelle
    Panel-scopes=Portées
    firebug.DetachFirebug=Ouvrir Firebug dans une nouvelle fenêtre
    firebug.AttachFirebug=Attacher Firebug à la fenêtre du navigateur
    Et un extrait du code de Firebug qui utilise du texte (c'est la fonction Locale.$STR) :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
        getPanelTitle: function(panelType)
        {
            if (!panelType)
                return null;
     
            return panelType.prototype.title ? panelType.prototype.title
                : Locale.$STR("Panel-"+panelType.prototype.name);
        },
    On note la correspondance avec les clés Panel-console, Panel-net etc. du fichier .properties.

  4. #4
    Membre averti Avatar de mapmip
    Profil pro
    ulla
    Inscrit en
    Juillet 2006
    Messages
    1 325
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations professionnelles :
    Activité : ulla

    Informations forums :
    Inscription : Juillet 2006
    Messages : 1 325
    Points : 345
    Points
    345
    Par défaut
    un fichier json fera l'affaire aussi je pense

Discussions similaires

  1. connaitre le système d'exploitation du client
    Par adel.87 dans le forum Général JavaScript
    Réponses: 1
    Dernier message: 07/05/2008, 17h08
  2. Réponses: 2
    Dernier message: 13/01/2008, 22h27
  3. Réponses: 0
    Dernier message: 29/08/2007, 16h57
  4. [Système] Informations systèmes d'un ordinateur client
    Par the_real_tonton dans le forum Langage
    Réponses: 9
    Dernier message: 30/03/2007, 01h10
  5. besoin d'un conseil : système de traduction
    Par Merfolk dans le forum API standards et tierces
    Réponses: 6
    Dernier message: 05/11/2005, 14h10

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