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

Interfaces Graphiques Discussion :

Gestion des langues [Débutant]


Sujet :

Interfaces Graphiques

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre confirmé
    Inscrit en
    Août 2009
    Messages
    107
    Détails du profil
    Informations forums :
    Inscription : Août 2009
    Messages : 107
    Par défaut Gestion des langues
    Bonjour,

    Je souhaiterais ajouter la gestion des langues (anglais et francais) dans un programme Matlab existant .
    J'ai pensé à ajouter un menu dans mon interface principale (interface.m) :

    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
     
    ...
    figure('units','pixels',...
        'position',[0 ecran(4)-650 800 600],...
        'color',couleur1,...
        'numbertitle','off',...
        'name','Interface',...
        'MenuBar','none');
     
    f = uimenu('Label','File');
        uimenu(f,'Label','Executer','Callback','Tests');
        uimenu(f,'Label','Imprimer','Callback','print -v');
        uimenu(f,'Label','Quit','Callback','close all',... 
               'Separator','on','Accelerator','Q');
     
     
    menu_langue = uimenu('Label','Language');
                  uimenu(menu_langue,'Label','English','Callback','main.m');
                  uimenu(menu_langue,'Label','Français','Callback','main.m');
    ...
    Ainsi lors du clic sur une langue, le programme de lancement de l'interface "main.m" redémarre et change de langue :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
     
    ...
     % Paramètres linguistiques :
         if strcmp(get(gcbo, 'Label'),'Français')
            lang = 'fr';
         else 
            lang = 'en';
         end
     
     
     
    % Lancement de l'interface
        interface
    ...
    Je voudrais mettre mes paramètres de langue dans des fichiers séparés : un fichier "en.m" pour l'anglais, un fichier "fr.m" pour le français.
    Ainsi, le fichier pour l'anglais ressemblerait à ceci:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
     
    ...
    langue.titre1 = "Welcome in this software"
    ...
    De cette manière, le fichier "interface.m" ressemblerait à ceci :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
     
    ...
    uipanel('units','pixel','position',[630 220 150 80],'title',langue.titre1,'BackgroundColor',couleur1)
    ...
    En tant que débutant Matlab, le problème est que je n'arrive pas à comprendre où il faut spécifier que je veux charger un fichier de langue.

    Quelqu'un pourrait-il m'aider à ce sujet?

    Merci beaucoup d'avance.

  2. #2
    Expert confirmé
    Avatar de Caro-Line
    Profil pro
    Inscrit en
    Mars 2007
    Messages
    9 458
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mars 2007
    Messages : 9 458
    Par défaut
    Tu as plusieurs solutions et effectivement mettre dans un script .m me semble pas mal.

    Dans ton script tu définis donc une structure langue, et ton besoin c'est de conserver/passer cette variable dans tous les fichiers qui en ont besoin.

    Tu as plusieurs possibilités pour cela :
    - Mettre toutes tes fonctions (sauf le script de langue) dans un seul fichier et utiliser les fonctions imbriquées
    - Utiliser GUIHANDLES/GUIDATA
    - Utiliser GET/SETAPPDATA

    Pour plus d'informations sur ces méthodes, voir : Développement efficace des interfaces graphiques (GUI)

  3. #3
    Membre confirmé
    Inscrit en
    Août 2009
    Messages
    107
    Détails du profil
    Informations forums :
    Inscription : Août 2009
    Messages : 107
    Par défaut
    Merci pour ta réponse Caroline.

    Cependant, étant vraiment novice en Matlab, et même après avoir lu le tutoriel que tu m'as indiqué, je ne suis pas sûr de bien savoir comment faire pour que mon fichier de langues "en.m" soit pris en compte dans le programme "interface.m", même si utiliser GUIHANDLES/GUIDATA, GET/SETAPPDATA ou les variables globales semblent être les solutions les plus adaptées à mon cas.

    Pourrais-tu m'aiguiller un peu plus, quitte à mettre 2 ou 3 lignes de codes?

    Merci beaucoup!

  4. #4
    Rédacteur/Modérateur

    Avatar de Jerome Briot
    Homme Profil pro
    Freelance mécatronique - Conseil, conception et formation
    Inscrit en
    Novembre 2006
    Messages
    20 317
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Haute Garonne (Midi Pyrénées)

    Informations professionnelles :
    Activité : Freelance mécatronique - Conseil, conception et formation

    Informations forums :
    Inscription : Novembre 2006
    Messages : 20 317
    Par défaut
    Vu que tu n'as pas beaucoup de langues prévues, tu peux tout mettre dans une même fonction dans un fichier setlang.m :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    function lang = setlang(L)
     
    switch L
     
        case 'fr'
     
            lang.titre1 = 'Bienvenue';
     
        case 'en'
     
            lang.titre1 = 'Welcome';
     
    end

    ensuite dans ton code il suffit de faire :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
     % Paramètres linguistiques :
         if strcmp(get(gcbo, 'Label'),'Français')
            lang = setlang('fr');
         else 
            lang = setlang('en');
         end

  5. #5
    Membre confirmé
    Inscrit en
    Août 2009
    Messages
    107
    Détails du profil
    Informations forums :
    Inscription : Août 2009
    Messages : 107
    Par défaut
    Merci pour ce code, Dut.
    Serait-ce abuser de ta gentillesse si je te demandais comment on fait pour utiliser 2 fichiers de langues séparés au lieu d'un seul?
    Car en fait, je vais avoir plein de texte à traduire...
    Du coup, si tu peux me montrer avec cette solution, je suis preneur!

    Merci déjà pour la précieuse aide que tu m'as déjà fournie!

  6. #6
    Rédacteur/Modérateur

    Avatar de Jerome Briot
    Homme Profil pro
    Freelance mécatronique - Conseil, conception et formation
    Inscrit en
    Novembre 2006
    Messages
    20 317
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Haute Garonne (Midi Pyrénées)

    Informations professionnelles :
    Activité : Freelance mécatronique - Conseil, conception et formation

    Informations forums :
    Inscription : Novembre 2006
    Messages : 20 317
    Par défaut
    Ben dans ce cas, il suffit de faire ceci :

    Un fichier setlangfr.m :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
     
    function lang = setlangfr
     
    lang.titre1 = 'Bienvenue';
    Un fichier setlangen.m :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
     
    function lang = setlangen
     
    lang.titre1 = 'Welcome';
    Et dans le code principale :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
     % Paramètres linguistiques :
         if strcmp(get(gcbo, 'Label'),'Français')
            lang = setlangfr;
         else 
            lang = setlangen;
         end
    Plus généralement, ce que tu cherches à faire s'appelle de l'internationalisation. C'est un travail qui semble assez simple au premier abord mais qui cache pas mal de piège...

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

Discussions similaires

  1. [c# 2.0] Gestion des langues avec SQL
    Par oolon dans le forum Général Dotnet
    Réponses: 4
    Dernier message: 14/03/2007, 16h42
  2. Problème de gestion des langues avec MFC
    Par Figaro dans le forum Visual C++
    Réponses: 4
    Dernier message: 20/11/2006, 15h56
  3. API gestion des langues
    Par sroux dans le forum API standards et tierces
    Réponses: 4
    Dernier message: 03/10/2006, 22h32
  4. [C#] Gestion des langues d'une application
    Par therock dans le forum Windows Forms
    Réponses: 4
    Dernier message: 15/05/2006, 08h47
  5. [Plugin]Eclipse et la gestion des langues
    Par Gougou dans le forum Eclipse Java
    Réponses: 2
    Dernier message: 26/07/2005, 12h51

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