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

Windows Discussion :

Que sont les StringTables et comment s'en servir?


Sujet :

Windows

  1. #1
    Membre habitué Avatar de Crisanar
    Profil pro
    Inscrit en
    Novembre 2004
    Messages
    162
    Détails du profil
    Informations personnelles :
    Âge : 40
    Localisation : Belgique

    Informations forums :
    Inscription : Novembre 2004
    Messages : 162
    Points : 137
    Points
    137
    Par défaut Que sont les StringTables et comment s'en servir?
    Bonjour à tous,
    Je dois dire que je ne sais pas trop si je suis dans la bonne section et si ce n'est pas le cas, je m'en excuse car j'ai réfléchi longement avant de poster ici.
    Je programme sous windows XP avec MASM32. J'ai découvert dans mon éditeur de ressources une option "StringTables" qui apparement fait correspondre des chaines de caractère avec des numéros (comme pour des controles quoi).
    Dans le cadre d'une application dont l'interface serait en francais ou en anglais selon la langue du système, j'aimerais savoir si ces StringTables pourraient êtres utiles et si oui, comment les utiliser (quelle API pour avoir une référence,...)
    Si les exemples sont dans un autre language que l'assembleur ce n'est pas un problème.
    Merci d'avance,
    Crisanar

  2. #2
    Expert éminent sénior

    Homme Profil pro
    pdg
    Inscrit en
    Juin 2003
    Messages
    5 749
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 42
    Localisation : France, Hérault (Languedoc Roussillon)

    Informations professionnelles :
    Activité : pdg

    Informations forums :
    Inscription : Juin 2003
    Messages : 5 749
    Points : 10 666
    Points
    10 666
    Billets dans le blog
    3
    Par défaut
    Alors oui c'est le bon forum et oui les string tables servent à changer facilement la langue d'une appli. L'idée c'est de virer toutes les strings de ton code source, et de les mettre dans ta resource. Si tu dois traduire ton appli, tu n'as qu'à modifier la ressource. Mieux, en adaptant un peu ton code, tu peux aller chercher la string table dans une autre dll, et ainsi offrir un support multi-langue simplement en fournissant telle ou telle dll.
    Il faut regarder du côté des fonctions de manipulation des resources, en particulier LoadString.
    http://msdn.microsoft.com/library/en-us/winui/winui/windowsuserinterface/resources/strings/stringreference/stringfunctions/loadstring.asp
    http://www.microsoft.com/globaldev/handson/dev/muiapp.mspx
    Y'a des exemples aussi sur codeproject et codeguru. Mais attention traduire un soft c'est plus que traduire son texte à l'écran (date, etc...)

  3. #3
    Membre habitué Avatar de Crisanar
    Profil pro
    Inscrit en
    Novembre 2004
    Messages
    162
    Détails du profil
    Informations personnelles :
    Âge : 40
    Localisation : Belgique

    Informations forums :
    Inscription : Novembre 2004
    Messages : 162
    Points : 137
    Points
    137
    Par défaut
    Merci pour les liens.
    Si j'ai bien compris, il n'y pas de procédure automatique, donc dans le cas où je ne crée pas de dll dans lequelles se trouvent les stringtables, je n'ai pas un grand intéret à les mettre en ressources. Autant les placer directement dans mon .data et selectionner celles qui m'intéressent apres avoir déterminé la langue du système?! (Je ne me tracasserai pas de la date,...)
    J'ai une 2eme question qui me vient à l'esprit: toujours dans mon editeur, j'ai une option language dans les propriétés de ma Dialog, à quoi sert-elle?

  4. #4
    Expert éminent sénior

    Homme Profil pro
    pdg
    Inscrit en
    Juin 2003
    Messages
    5 749
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 42
    Localisation : France, Hérault (Languedoc Roussillon)

    Informations professionnelles :
    Activité : pdg

    Informations forums :
    Inscription : Juin 2003
    Messages : 5 749
    Points : 10 666
    Points
    10 666
    Billets dans le blog
    3
    Par défaut
    Citation Envoyé par Crisanar
    Merci pour les liens.
    Si j'ai bien compris, il n'y pas de procédure automatique, donc dans le cas où je ne crée pas de dll dans lequelles se trouvent les stringtables, je n'ai pas un grand intéret à les mettre en ressources. Autant les placer directement dans mon .data et selectionner celles qui m'intéressent apres avoir déterminé la langue du système?! (Je ne me tracasserai pas de la date,...)
    Si tu te limites à 2 langues c'est envisageable. L'avantage des ressources c'est que c'est modifiable sur l'exe compilé (avec ResHacker) et que tu peux filer une dll d'exemple si un mec veut traduire il a juste à créer sa mini dll qui contient que des strings. Le truc aussi c'est que sans changer une ligne de code tu peux gérer toutes les langues, il suffit juste de jouer sur l'ID de la langue lorsque tu charges tes strings. Mais dans les .data c'est faisable aussi.

    J'ai une 2eme question qui me vient à l'esprit: toujours dans mon editeur, j'ai une option language dans les propriétés de ma Dialog, à quoi sert-elle?
    Quel dialog ? C'est un menu de ton éditeur ? J'en sais rien alors faut lire la doc, c'est propre à ton éditeur.

  5. #5
    Membre habitué Avatar de Crisanar
    Profil pro
    Inscrit en
    Novembre 2004
    Messages
    162
    Détails du profil
    Informations personnelles :
    Âge : 40
    Localisation : Belgique

    Informations forums :
    Inscription : Novembre 2004
    Messages : 162
    Points : 137
    Points
    137
    Par défaut
    Citation Envoyé par Aurelien.Regat-Barrel
    Le truc aussi c'est que sans changer une ligne de code tu peux gérer toutes les langues, il suffit juste de jouer sur l'ID de la langue lorsque tu charges tes strings. Mais dans les .data c'est faisable aussi.
    Tu peux me donner un exemple pour l'ID?

    Citation Envoyé par Aurelien.Regat-Barrel
    Quel dialog ? C'est un menu de ton éditeur ? J'en sais rien alors faut lire la doc, c'est propre à ton éditeur.
    Il n'y a pas de doc, c'est un petit freeware (ResEd disponible sur le site de RadAsm). Lorsque je crée une DialogBox, j'ai l'apparence visuelle de la fenetre qui s'affiche, à droite (comme dans le visual studio), j'ai un certain nombres de propriétés de ma fenetre (hauteur, largeur, titre,...) mais j'ai également un champ "Language" qui par défaut est à "0,0".

  6. #6
    Expert éminent sénior

    Homme Profil pro
    pdg
    Inscrit en
    Juin 2003
    Messages
    5 749
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 42
    Localisation : France, Hérault (Languedoc Roussillon)

    Informations professionnelles :
    Activité : pdg

    Informations forums :
    Inscription : Juin 2003
    Messages : 5 749
    Points : 10 666
    Points
    10 666
    Billets dans le blog
    3
    Par défaut
    Pour tes 2 questions la même réponse.
    http://msdn.microsoft.com/library/en-us/tools/tools/dialog_resource.asp
    Quand tu charges une string table, tu spécifies la langue à charger via un ID. Chaque string-table (ainsi que les dialog aussi) est associée à une langue, Windows se charge de charger la langue que t'as demandé.

  7. #7
    Membre habitué Avatar de Crisanar
    Profil pro
    Inscrit en
    Novembre 2004
    Messages
    162
    Détails du profil
    Informations personnelles :
    Âge : 40
    Localisation : Belgique

    Informations forums :
    Inscription : Novembre 2004
    Messages : 162
    Points : 137
    Points
    137
    Par défaut
    Merci beaucoup pour ces réponses
    Je vais essayer de jouer un peu avec ça prochainement.

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. Que sont les fichiers PKS
    Par Shendream dans le forum Langages de programmation
    Réponses: 2
    Dernier message: 17/02/2008, 22h59
  2. [WSS 3.0] Où sont les données et comment les bouger ?
    Par fanatek dans le forum SharePoint
    Réponses: 5
    Dernier message: 15/01/2008, 15h10
  3. Débutant : que sont les #include < > ?
    Par deubelte dans le forum C++
    Réponses: 4
    Dernier message: 03/01/2007, 13h14
  4. Que sont les violations d'accès ?
    Par James64 dans le forum Langage
    Réponses: 7
    Dernier message: 21/06/2005, 12h35

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