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

Lazarus Pascal Discussion :

Boîtes de message en anglais sous Windows et en français sous Linux


Sujet :

Lazarus Pascal

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre émérite
    Avatar de ChPr
    Homme Profil pro
    Inscrit en
    Septembre 2005
    Messages
    2 122
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 79
    Localisation : France, Val d'Oise (Île de France)

    Informations forums :
    Inscription : Septembre 2005
    Messages : 2 122
    Par défaut Boîtes de message en anglais sous Windows et en français sous Linux
    Bonjour à toutes et à tous,

    Comme le dit le titre, mes boîtes de message (MessageDlg) sous en anglais sous Windows alors qu'elles sont en français sous Ubuntu ???

    Un idée du problème ?

    Merci de votre aide.

    Pierre.

  2. #2
    Membre émérite Avatar de DOLPat®
    Homme Profil pro
    Technicien maintenance
    Inscrit en
    Février 2003
    Messages
    426
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 64
    Localisation : France, Haut Rhin (Alsace)

    Informations professionnelles :
    Activité : Technicien maintenance
    Secteur : Industrie

    Informations forums :
    Inscription : Février 2003
    Messages : 426
    Par défaut
    Bonjour

    Je vais encore être un annonciateur de mauvaise nouvelle.
    Je viens d'essayer sous la version 0.9.31 et effectivement le texte des boutons est dans la langue de Shakespeare. Donc, c'est un bug. Je ne t'explique plus la procédure à suivre si tu veux que cela soit corrigé. Bug tracker etc etc etc. Tu commences à être routinier du fait. Apparemment, tu est en train de piocher tous les bogues de Lazarus.

  3. #3
    Membre émérite
    Avatar de ChPr
    Homme Profil pro
    Inscrit en
    Septembre 2005
    Messages
    2 122
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 79
    Localisation : France, Val d'Oise (Île de France)

    Informations forums :
    Inscription : Septembre 2005
    Messages : 2 122
    Par défaut
    Merci DOLPat, je vais encore aller dans le BugTracker.

    Le problème c'est que j'en ai encore d'autres sous le pied .

    Cordialement.

    Pierre

  4. #4
    Membre émérite Avatar de DOLPat®
    Homme Profil pro
    Technicien maintenance
    Inscrit en
    Février 2003
    Messages
    426
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 64
    Localisation : France, Haut Rhin (Alsace)

    Informations professionnelles :
    Activité : Technicien maintenance
    Secteur : Industrie

    Informations forums :
    Inscription : Février 2003
    Messages : 426
    Par défaut
    Citation Envoyé par ChPr Voir le message
    Le problème c'est que j'en ai encore d'autres sous le pied .
    Ben c'est bien ce que je disais tout à l'heure:
    Citation Envoyé par DOLPat® Voir le message
    ... Apparemment, tu est en train de piocher tous les bogues de Lazarus.
    Je sais que c'est galère, mais dis-toi que c'est pour la bonne cause. Le chemin est encore grand pour rendre Lazarus exempt de tout bug, hélas. Mais si chacun met une pierre à l'édifice, on arrivera bien à le terminer un jour.

    [Conseil] Allumer un cierge afin d'arrêter la série.

  5. #5
    Membre émérite Avatar de DOLPat®
    Homme Profil pro
    Technicien maintenance
    Inscrit en
    Février 2003
    Messages
    426
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 64
    Localisation : France, Haut Rhin (Alsace)

    Informations professionnelles :
    Activité : Technicien maintenance
    Secteur : Industrie

    Informations forums :
    Inscription : Février 2003
    Messages : 426
    Par défaut
    Bonjour

    J'ai trouvé ceci qui devrait t'être utile.

  6. #6
    Membre émérite
    Avatar de ChPr
    Homme Profil pro
    Inscrit en
    Septembre 2005
    Messages
    2 122
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 79
    Localisation : France, Val d'Oise (Île de France)

    Informations forums :
    Inscription : Septembre 2005
    Messages : 2 122
    Par défaut
    Merci DolPat pour ce lien, je vais regarder ça.

    Cordialement.

    Pierre

  7. #7
    Invité
    Invité(e)
    Par défaut
    Bonjour Pierre,

    Je suis peut-être complètement à côté de la plaque : j'ai peut-être mal compris le problème... et c'est peut-être une redite des divers liens précisés ci-dessus que j'avoue n'avoir pas lus. Par contre, je constate en effet sur un projet vierge que le Caption des boutons est en anglais sous Win. Je me rappelle avoir eu sur ce forum une discussion assez animée sur la question de l'utilisation de i18n.

    Depuis la 0.9.28, systématiquement, sous Win comme sous Nux, j'utilise les fichiers lclstrconsts.po, lclstrconsts.en.po et lclstrconsts.fr.po en activant le i18n du projet.

    Je viens de vérifier sur un petit projet. Sous Win comme sous Nux, mes boîtes de dialogue (ie les boutons) "fonctionnent". Et cela ne nécessite pas beaucoup d'investissement... et donc ne ralentira pas beaucoup votre projet.

    1. Vous récupérez les fichiers nécessaires lclstrconsts.po, lclstrconsts.fr.po (et éventuellement lclstrconsts.en.po). Dans mon cas, ils sont dans ..\lazarus\0.9.31-31628-fpc-2.4.4-20110710\lcl\languages\ lclstrconsts.xx.po. Vous les placez dans un rép. de votre projet (par exemple \langs).

    2. Vous activez l'i18n dans les options de votre projet (et sélectionnez à cette occasion le répertoire \langs que vous venez de créer dans votre projet).

    3. Dans le onCreate de votre Form, le code se réduit à ce qui suit. Tel quel, il devrait suffire à régler votre problème.
    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
    21
    22
    23
    24
    //uses Translations, gettext, StrUtils;     
     
    var
       gsFallbackLang, gsLang : string;
       gsPODirectory : string;  // Rép. des "translation files"  
     
    begin
    //Gestion des langues
      gsPODirectory := IncludeTrailingPathDelimiter(
                          IncludeTrailingPathDelimiter(
                           ExtractFilePath(Application.ExeName))+'langs');
     GetLanguageIDs(gsLang ,gsFallbackLang);
    // Choix de la langue par défaut si pas dans celles utilisées par le logiciel
     if (gsFallbackLang <> 'fr') then begin   // and (gsFallbackLang <> 'us') and ...  
        gsFallbackLang := 'fr';
        gsLang         := 'fr_FR';
     end;
     //Traduction des messages (tous) contenus dans l'unité uglobales [Inutile dans votre cas]
     // Translations.TranslateUnitResourceStrings('uglobales', gsPODirectory +
     //    ExtractFileNameOnly(Application.ExeName)+'.%s.po', gsLang, gsFallbackLang);
     //Traduction des caption des buttons des MessageDialogs & co
      Translations.TranslateUnitResourceStrings('LCLStrConsts', gsPODirectory +
                      'lclstrconsts.'+gsFallbackLang+'.po', gsLang, gsFallbackLang);  
    end;
    Je ne sais pas si automatiquement avec l'activation du i18n dans le projet (ie sans le code ci-dessus) Lazarus fait le travail... mais j'en doute même si le répertoire des traductions associé au projet est déclaré au moment de la validation de l'i18n dans les options du projet. J'utilise un code de ce type un peu amélioré pour changer de langue à tout moment dans mes applications.

    Avant

    Après

    RQ : je n'ai pas pris le tps de traduire le texte du message . Il serait déclaré comme resourcestring (ex. rsMessSupportTech = 'Please, contact technical support'; ), dans mon cas, dans l'unité uGlobales. Il est par défaut en anglais car les default.po à partir desquels sont générés les default.fr.po, sont eux-mêmes en anglais. Lazarus génère alors la structure des fichiers de traduction dans /langs : project1.po, project1.fr.po et project1.en.po
    Un tel fichier (project1.fr.po) ressemble alors à
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
     
    #: uglobales.rsmesserror
    msgid "Error"
    msgstr "Erreur"
     
    #: uglobales.rsmesssupporttech
    msgid "Please, contact technical support"
    msgstr "Veuillez contacter le support technique" --> Là, vous placez votre traduction
    Code testé ce jour sous Lazarus 0.9.31-31628-fpc-2.4.4-20110710 - Windows 7 [32]

    En conclusion, la gestion de i18n est extrêmement efficace avec Lazarus (encore un excellent point) et totalement contrôlable. On l'implante une fois sur un projet, et on le duplique... Evidemment, c'est plus compliqué au départ que le "paramétrage automatique"... mais après, d'une part, en contre-partie on échappe à ce type de bug, et d'autre part on dispose d'une réelle facilité pour réaliser des applications multi-OS et multilingues.

    Bonne fin de WE.
    Cordialement. Gilles
    Dernière modification par Invité ; 13/09/2011 à 12h21.

Discussions similaires

  1. [Lazarus] [0.9.28.2] Date en français sous Windows et en anglais sous Linux
    Par G-Assfeld dans le forum Lazarus
    Réponses: 3
    Dernier message: 27/11/2010, 07h18
  2. [Delphi2009] Boîtes de messages en anglais
    Par jbrg dans le forum EDI
    Réponses: 3
    Dernier message: 25/09/2009, 12h00
  3. Réponses: 3
    Dernier message: 11/12/2006, 18h27
  4. Réponses: 30
    Dernier message: 11/09/2006, 09h53
  5. Réponses: 4
    Dernier message: 27/09/2005, 22h00

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