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

 Delphi Discussion :

faire un menu en deux langues


Sujet :

Delphi

  1. #1
    Nouveau Candidat au Club
    Homme Profil pro
    retraité
    Inscrit en
    Septembre 2011
    Messages
    20
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Tunisie

    Informations professionnelles :
    Activité : retraité

    Informations forums :
    Inscription : Septembre 2011
    Messages : 20
    Points : 0
    Points
    0
    Par défaut faire un menu en deux langues
    bonne journeé , je suis nouveau dans ce furom et debutant en delphi, je veux faire une petite application en delphi en utilisant un menu bilingue en arabe et en francais ,et je ne sais pas le faire, peux t'on m'aider et merci d'avance

  2. #2
    Expert éminent sénior
    Avatar de ShaiLeTroll
    Homme Profil pro
    Développeur C++\Delphi
    Inscrit en
    Juillet 2006
    Messages
    13 612
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 43
    Localisation : France, Seine Saint Denis (Île de France)

    Informations professionnelles :
    Activité : Développeur C++\Delphi
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Juillet 2006
    Messages : 13 612
    Points : 25 303
    Points
    25 303
    Par défaut
    Une solution simple serait d'avoir un fichier ini qui contient la correspondance de langue !

    cela pourrait donner une fichier de la forme suivante :

    Code ini : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    [Français]
    mnuTruc=Bonjour
    mnuBidule=Au Revoir 
     
    [Arabe]
    mnuTruc=...
    mnuBidule=...

    Après cela dépend de ta version de Delphi (avant 2009), pour afficher de l'Arabe dans une application ANSI :
    * soit tu passes pas des composants UniCode tel que TNT ou TMS
    * soit tu détecte la langue de l'OS, et tu choisi la section de l'ini en fonction de la la langue de l'OS
    * soit tu détecte la langue des applications non-Unicode et tu choisi la langue en fonction


    Si tu as 2009 à XE2, le problème ne se pose plus !

    Cherche sur le Forum, ce sujet est régulièrement débattu !

  3. #3
    Nouveau Candidat au Club
    Homme Profil pro
    retraité
    Inscrit en
    Septembre 2011
    Messages
    20
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Tunisie

    Informations professionnelles :
    Activité : retraité

    Informations forums :
    Inscription : Septembre 2011
    Messages : 20
    Points : 0
    Points
    0
    Par défaut
    Citation Envoyé par ShaiLeTroll Voir le message
    Une solution simple serait d'avoir un fichier ini qui contient la correspondance de langue !

    cela pourrait donner une fichier de la forme suivante :

    Code ini : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    [Français]
    mnuTruc=Bonjour
    mnuBidule=Au Revoir 
     
    [Arabe]
    mnuTruc=...
    mnuBidule=...
    merci bien pour ta reponse mais si c'est possible de me donner un petit exemple d'application que je peux permiter avec menu entre deux ou plusieurs langues et merci une autre fois,sachant que j'utilise dephi7

  4. #4
    Expert éminent sénior
    Avatar de ShaiLeTroll
    Homme Profil pro
    Développeur C++\Delphi
    Inscrit en
    Juillet 2006
    Messages
    13 612
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 43
    Localisation : France, Seine Saint Denis (Île de France)

    Informations professionnelles :
    Activité : Développeur C++\Delphi
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Juillet 2006
    Messages : 13 612
    Points : 25 303
    Points
    25 303
    Par défaut
    Quelle est la difficulté ?
    Tu as juste à utiliser TMainMenu et ses Items
    Tu fais une boucle récursive sur les TMenuItem
    Tu utilise la propriétés TMenuItem.Name comme clé dans TIniFile.ReadString
    Le Résultat de ReadString tu l'affecte dans TMenuItem.Caption

    Propose nous un code, nous pourrons t'aider à la corriger !

    Voici un équivalent C++Builder
    Code c++ : 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
     
      void Translate(TMenuItem *AItems, AnsiString ALangue)
      {
        TIniFile *Ini = new TIniFile("C:\\Dossier\\Dossier\\FichierLangue.ini");
        try
        {
          _Translate(AItems, Ini, ALangue);
        }
        __finally
        {
          delete Ini;
        }
      }
     
      void _Translate(TMenuItem *AItems, TIniFile *AIni, AnsiString ALangue)
      {
        AItems->Caption = AIni->ReadString(Langue, AItems->Name, AItems->Name);
     
        for (int i = 0; i < AItems->Count; i++)
          _Translate(AItems->Items[i], AIni, ALangue);
      }

    l'appel serait

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
     Translate(MainMenu1.Items, 'Français');

  5. #5
    Membre éclairé
    Avatar de Whiler
    Homme Profil pro
    Inscrit en
    Avril 2002
    Messages
    298
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations forums :
    Inscription : Avril 2002
    Messages : 298
    Points : 664
    Points
    664
    Par défaut
    Une autre solution... http://www.obones.com/codeway3

  6. #6
    Nouveau Candidat au Club
    Homme Profil pro
    retraité
    Inscrit en
    Septembre 2011
    Messages
    20
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Tunisie

    Informations professionnelles :
    Activité : retraité

    Informations forums :
    Inscription : Septembre 2011
    Messages : 20
    Points : 0
    Points
    0
    Par défaut
    Citation Envoyé par Whiler Voir le message
    Une autre solution... http://www.obones.com/codeway3
    merci bien pour tes explications mais je suis debutant je cherche un component que lorsque je l'ajoute a delphi je peux traduire les interface des forms autotomatique
    et merci une autre fois et si c'est possible je veux un exemple pour le tester

  7. #7
    Expert éminent sénior
    Avatar de ShaiLeTroll
    Homme Profil pro
    Développeur C++\Delphi
    Inscrit en
    Juillet 2006
    Messages
    13 612
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 43
    Localisation : France, Seine Saint Denis (Île de France)

    Informations professionnelles :
    Activité : Développeur C++\Delphi
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Juillet 2006
    Messages : 13 612
    Points : 25 303
    Points
    25 303
    Par défaut
    Tu as déjà essayé de comprendre ?
    Je t'ai fourni un code C++Builder, tu n'as qu'à le traduire en Delphi, si tu veux apprendre la programmation en loisirs, c'est très formateur !

    Whiler a fourni carrément le lien vers une library complète, il y a une vidéo démonstrative, regarde là ! Reviens avec des questions précises !

    Si tu attends juste que l'on te fasse tout, tu n'auras rien !

  8. #8
    Membre éprouvé Avatar de BuzzLeclaire
    Homme Profil pro
    Dev/For/Vte/Ass
    Inscrit en
    Août 2008
    Messages
    1 606
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Dev/For/Vte/Ass

    Informations forums :
    Inscription : Août 2008
    Messages : 1 606
    Points : 1 113
    Points
    1 113
    Par défaut
    Citation Envoyé par misquinetata Voir le message
    merci bien pour tes explications mais je suis debutant je cherche un component que lorsque je l'ajoute a delphi je peux traduire les interface des forms autotomatique
    et merci une autre fois et si c'est possible je veux un exemple pour le tester
    Et on peut aussi faire la vaisselle...

    La méthode de Shail est assez simple d'utilisation.
    1) tu créé un fichier ini avec 2 sections
    [Langue1]
    [Langue2]

    2) dans chaque section
    [Langue1]
    Menu1=Général
    Menu1Rubrique1=Fichier
    Menu1Rubrique2=Ouvrir
    Menu1Rubrique3=Quitter
    [Langue2]
    Menu1=MainMenu
    Menu1Rubrique1=File
    Menu1Rubrique2=Open
    Menu1Rubrique3=Quit

    Pour Lire un fichier INI tu peux utiliser la FAQ du site

    3) tu as créé dans DELPHI ton TMENU, c'est là qu'il faut que tu nomme chaque propriété NAME de ton menu en corélation avec ton fichier INI.

    4) A l'ouverture de ton application :
    - Tu lis la valeur de la langue du windows de ton utilisateur
    - par exemple dans ton ONCREATE de ta form principal tu parcours ton TMEMU et pour chaque valeur de ta section égale au NAME de ton temnu tu affecte ton caption..

    petit + : Je rajouterais une rubrique spéciale ou tu aurais le choix de la langue dans ton menu pour pouvoir changer pendant l'éxecution.

    A+

    [EDIT] : coiffé par Shail...

  9. #9
    Nouveau Candidat au Club
    Homme Profil pro
    retraité
    Inscrit en
    Septembre 2011
    Messages
    20
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Tunisie

    Informations professionnelles :
    Activité : retraité

    Informations forums :
    Inscription : Septembre 2011
    Messages : 20
    Points : 0
    Points
    0
    Par défaut
    Citation Envoyé par ShaiLeTroll Voir le message
    Tu as déjà essayé de comprendre ?
    Je t'ai fourni un code C++Builder, tu n'as qu'à le traduire en Delphi, si tu veux apprendre la programmation en loisirs, c'est très formateur !

    Whiler a fourni carrément le lien vers une library complète, il y a une vidéo démonstrative, regarde là ! Reviens avec des questions précises !

    Si tu attends juste que l'on te fasse tout, tu n'auras rien !
    merci bien pour votre collaboration mais j'ai trouver un petit component

    TsiLang que je peux translater avec lui ce que je veux merci une autre fois

Discussions similaires

  1. Faire un menu à deux niveaux en mode texte
    Par julien.63 dans le forum Langage
    Réponses: 3
    Dernier message: 25/01/2008, 14h14
  2. comment faire des espaces entre deux liens ???
    Par baaps dans le forum Balisage (X)HTML et validation W3C
    Réponses: 3
    Dernier message: 24/03/2005, 09h53
  3. [menu]faire un menu déroulant
    Par Nadine dans le forum Balisage (X)HTML et validation W3C
    Réponses: 5
    Dernier message: 24/03/2005, 08h33
  4. Faire disparaître menu lors de l'impression
    Par jackrabbit dans le forum Balisage (X)HTML et validation W3C
    Réponses: 3
    Dernier message: 19/12/2004, 20h56
  5. [CR] Faire un groupe sur deux colonnes, voir mon exemple
    Par Etienne51 dans le forum SAP Crystal Reports
    Réponses: 6
    Dernier message: 08/10/2004, 14h02

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