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 :

[wxDialog] Internationalisation


Sujet :

wxWidgets

  1. #1
    Membre du Club
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Juin 2003
    Messages
    54
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 40
    Localisation : France, Meurthe et Moselle (Lorraine)

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : Santé

    Informations forums :
    Inscription : Juin 2003
    Messages : 54
    Points : 65
    Points
    65
    Par défaut [wxDialog] Internationalisation
    Bonjour,

    Je développe une application wxWidgets 3.0.2 fonctionnant sous Windows 10 et compilée via visual studio 2013.

    Mon application est configurée pour utiliser la local du système (une wxLocale initialisée via GetSystemLanguage)

    Lorsque j'utilise des fonctions telles que wxMessageBox, tout fonctionne bien: mes boutons sont convenablement traduits (l'utilisation de wxCANCEL affiche bien Annuler, ...)

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    wxMessageBox(wxEmptyString, wxEmptyString, wxCANCEL | wxYES_NO);
    Par contre, lorsque j'utilise la fonction CreateButtonSizer de la classe wxDialog, alors à ce moment là: les boutons ne sont pas traduits (wxYES_NO affiche Yes et No, ...)

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    mainSizer->Add(CreateSeparatedButtonSizer(wxYES_NO | wxAPPLY | wxCANCEL), 0, wxALL | wxEXPAND, 5);
    Est-ce que quelqu'un a déjà été confronté à ce genre de soucis ??? Je n'ai pas trouvé beaucoup d'informations sur le sujet: tout me renvoi vers la doc officielle liée à l'internationalisation.

    (Lorsque je compile mon application sous Linux Debian, toutes les chaines automatiques de ce genre sont convenablement traduites).

    Merci

  2. #2
    Membre averti Avatar de wxXav
    Homme Profil pro
    Développeur amateur
    Inscrit en
    Décembre 2008
    Messages
    214
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Développeur amateur

    Informations forums :
    Inscription : Décembre 2008
    Messages : 214
    Points : 354
    Points
    354
    Par défaut
    Bonjour.

    Est-ce que tu as bien spécifié "wxLOCALE_LOAD_DEFAULT" lors de l’initialisation du système de traduction ?
    Il faut aussi que le fichier "wxStd.mo" (correspondant à la compilation du fichier "fr.po" présent dans le dossier "locale" des sources wxWidgets) soit présent au même endroit que ton propre fichier de traductions compilées.


    Citation Envoyé par schneed Voir le message
    Lorsque j'utilise des fonctions telles que wxMessageBox, tout fonctionne bien: mes boutons sont convenablement traduits (l'utilisation de wxCANCEL affiche bien Annuler, ...)
    Il me semble que le système de traduction n'entre pas en jeu dans ce cas sous Windows : c'est l'OS qui gère ça tout seul.

    @+
    Xav'

  3. #3
    Membre du Club
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Juin 2003
    Messages
    54
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 40
    Localisation : France, Meurthe et Moselle (Lorraine)

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : Santé

    Informations forums :
    Inscription : Juin 2003
    Messages : 54
    Points : 65
    Points
    65
    Par défaut Une merveille
    Nickel, ça marche du feu de dieu.

    En effet, ça ne doit pas être le même système de traduction entre les messages box et les autres contrôles...

    Du coup, j'ai ajouter le fichier fr.mo disponible dans les sources puis j'ai ajouté le catalogue... et tout est rentré dans l'ordre...

    Voici ma fonction d'initialisation de la locale :

    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
    long language = wxLocale::GetSystemLanguage();
    if(wxLocale::IsAvailable(language))
    {
      m_appLocale.Init(language);
      std::cout << "language selected : " << m_appLocale.GetSysName() << std::endl;
      m_appLocale.AddCatalogLookupPathPrefix(wxT("i18n"));
      m_appLocale.AddCatalog(_T("fr"));
    }
     
    if(!m_appLocale.IsOk() )
    {
      language = wxLANGUAGE_ENGLISH;
      m_appLocale.Init(language);
      std::cerr << "Unable to load selected language. New selected language is " <<m_appLocale.GetSysName() << std::endl;
    }
    Encore merci pour l'astuce !

    Sylvain

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

Discussions similaires

  1. [Struts] Internationalisation
    Par kayoups dans le forum Struts 1
    Réponses: 2
    Dernier message: 01/09/2004, 17h19
  2. [Kylix] internationalisation
    Par bohort dans le forum EDI
    Réponses: 1
    Dernier message: 26/07/2004, 19h26
  3. [STRUTS] INTERNATIONALISATION ==>> EXEMPLE
    Par zarbydigital dans le forum Struts 1
    Réponses: 10
    Dernier message: 23/03/2004, 15h55
  4. [Unicode] Internationalisation d'une application
    Par Thierry Laborde dans le forum Langage
    Réponses: 4
    Dernier message: 21/10/2003, 21h15
  5. [CR] internationalisation d'un report
    Par osoudee dans le forum SAP Crystal Reports
    Réponses: 2
    Dernier message: 24/06/2002, 17h54

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