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

wxWidgets Discussion :

Fixer la langue utilisée par wxWidget


Sujet :

wxWidgets

  1. #1
    Membre averti Avatar de vikki
    Profil pro
    Inscrit en
    Mai 2007
    Messages
    292
    Détails du profil
    Informations personnelles :
    Âge : 39
    Localisation : France, Bouches du Rhône (Provence Alpes Côte d'Azur)

    Informations forums :
    Inscription : Mai 2007
    Messages : 292
    Points : 302
    Points
    302
    Par défaut Fixer la langue utilisée par wxWidget
    Bonjour à tous,

    J'ai un petit probleme avec une appli developpée (sous Windows) en wxWidget. Nous avons du recement passer toute l'appli en anglais (initialement en francais). Or je ne vois pas comment imposer une langue pour les outils predefinis de wxWidget (genre la popup lors d'un clique droit dans un wxTextCtrl, qui apparait dans les deux langues pour deux TextCtrl differents, ce qui fait un peu brouillon^^). Quelqu'un sait-il comment fixer la langue utilisée?
    Merci d'avance

  2. #2
    Membre éclairé

    Profil pro
    Inscrit en
    Septembre 2006
    Messages
    717
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Septembre 2006
    Messages : 717
    Points : 858
    Points
    858
    Par défaut
    Pour passer les chaines contenues dans wxWidgets en français, par exemple, tu peux utiliser cette méthode :
    - Ajoute un objet wxLocale dans ton objet wxApp
    - Ajoute dans la fonction OnInit() :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
      m_locale.Init(wxLANGUAGE_FRENCH, 0);
      m_locale.AddCatalog(_T("fr"));
    - Copie le fichier wxWidgets/locale/fr.po (c'est le catalogue de toutes les chaines en français) dans le répertoire de ton exécutable (c'est là que la fonction AddCatalog() ira le chercher par défaut).
    Voilà, c'est tout. Tu peux même utiliser ce système pour tes propre chaines. Il suffit de toutes les entourées de _("...") dans le code puis d'utiliser le freeware poEdit pour ensuite créer des fichiers catalogues dans d'autres langues.

  3. #3
    Membre averti Avatar de vikki
    Profil pro
    Inscrit en
    Mai 2007
    Messages
    292
    Détails du profil
    Informations personnelles :
    Âge : 39
    Localisation : France, Bouches du Rhône (Provence Alpes Côte d'Azur)

    Informations forums :
    Inscription : Mai 2007
    Messages : 292
    Points : 302
    Points
    302
    Par défaut
    Merci pour la réponse si rapide!
    J'ai fait ceci pour passer l'application en anglais:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
     
    m_locale.Init(wxLANGUAGE_ENGLISH, 0);
    m_locale.AddCatalog(_T("eu"));
    dans mon OnInit (en ayant copié le "eu.po"), mais cela ne change rien, mes wxTextCtrl sont toujours en francais. Tu es sur qu'il n'y a pas à recompiler completement wxWidget pour que les changement s'effectuent?

  4. #4
    Membre éclairé

    Profil pro
    Inscrit en
    Septembre 2006
    Messages
    717
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Septembre 2006
    Messages : 717
    Points : 858
    Points
    858
    Par défaut
    Je me suis trompé sur un point, le fichier .po il faut le compiler en fichier .mo (avec poEdit ou avec le Makefile dans /locale) puis c'est lui qu'il faut mettre à côté de l'exécutable.

    Par contre eu.po c'est le basque, pas l'anglais. L'anglais est par défaut dans wxWidgets, ce n'est pas normal que tu ai du français, est-tu sûr que les chaines en français viennent de wxWidgets ?

  5. #5
    Membre averti Avatar de vikki
    Profil pro
    Inscrit en
    Mai 2007
    Messages
    292
    Détails du profil
    Informations personnelles :
    Âge : 39
    Localisation : France, Bouches du Rhône (Provence Alpes Côte d'Azur)

    Informations forums :
    Inscription : Mai 2007
    Messages : 292
    Points : 302
    Points
    302
    Par défaut
    Par contre eu.po c'est le basque, pas l'anglais
    Hehe autant pour moi, c'est effectivement le basque, faut que je trouve l'anglais. Pour la compilation en .mo, je ne peux pas installer poedit (pas les droits administrateurs) et gettext pour windows m'envoie bouler (erreur dans le .po il semble).

    L'anglais est par défaut dans wxWidgets, ce n'est pas normal que tu ai du français, est-tu sûr que les chaines en français viennent de wxWidgets ?
    En fait, je sais pas bien d'où vient quoi. La plupart de mes wxTextCtrl sont en francais ("copier","coller",etc...), mais deux sont en anglais ("copy", "paste", etc). Pour le francais, j'imagine qu'il vient de l'os qui est configurée avec cette langue.
    Edit (je teste en même temps que j'écris le post): il y a bien une feinte: mes wxTextCtrl dont les flags contiennent wxTE_RICH sont invariablement en anglais, contrairement aux autres qui sont en francais. Mais bon, ca résout pas tout (genre le "Etes vous sur de vouloir supprimer ce fichier?" lorsqu'on sauvegarde en écrasant un fichier).

    Je vais me débrouiller pour installer poEdit et je te tiens au courant

  6. #6
    Membre éprouvé

    Homme Profil pro
    Diverses et multiples
    Inscrit en
    Mai 2008
    Messages
    662
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Diverses et multiples

    Informations forums :
    Inscription : Mai 2008
    Messages : 662
    Points : 1 273
    Points
    1 273
    Par défaut
    Bonjours à tous,

    Juste quelques précisions: il me semble que wxWidgets se débrouille très bien toute seule pour les traductions de ses propres chaînes de caractères (suffit juste de préciser la locale voulue, elle devrait savoir où trouver les catalogues correspondants - qui devraient déjà être compilés!) Elle est même (normalement) capable de détecter comme une grande la locale actuelle du système, donc c'est normal que le programme soit en français par défaut - et ça montre que les traductions fonctionnent ... aussi bien que possible!

    Le problème des messages parfois en anglais provient probablement du fait qu'ils ne sont pas (encore) traduits dans les catalogues de wxWidgets! C'est peut-être le cas des chaînes du wxTextCtrl en mode "rich text edit"!

    A+, Bastien

Discussions similaires

  1. Réponses: 1
    Dernier message: 10/12/2007, 11h54
  2. ou mettre une structure utilisée par une classe
    Par grand's dans le forum C++
    Réponses: 10
    Dernier message: 28/07/2005, 18h53
  3. Supprimer la mémoire utilisée par les variables globales
    Par dnaprotector dans le forum OpenGL
    Réponses: 4
    Dernier message: 21/07/2005, 13h18
  4. Table ASCII utilisée par SQL Server
    Par Oluha dans le forum MS SQL Server
    Réponses: 2
    Dernier message: 29/06/2005, 14h31
  5. Comment lire un fichier DB en cours d'utilisation par 1 autr
    Par jbat dans le forum Bases de données
    Réponses: 4
    Dernier message: 12/03/2004, 11h06

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