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 :

Toujours des problèmes d'accents ! [Lazarus]


Sujet :

Lazarus Pascal

  1. #1
    Membre confirmé
    Avatar de JP.NUAGE
    Profil pro
    Inscrit en
    Avril 2006
    Messages
    769
    Détails du profil
    Informations personnelles :
    Âge : 82
    Localisation : France

    Informations forums :
    Inscription : Avril 2006
    Messages : 769
    Points : 542
    Points
    542
    Par défaut Toujours des problèmes d'accents !
    Bonjour et bon week-end !

    Décidément, les accents me cherchent
    J'ai codifié
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    var xMois : WideString;
    .
    .
    xMois := FormatDateTime('mmmm yyyy', Date - 30);    // Date est aujourd'hui
    ShowMessage(xMois);              //  ici je vois f?vrier 2013
    showMessage(AnsitoUtf8(xMois));   //  ici je vois février 2013
    xMois := AnsitoUtf8(xMois);
    .
    .
    Label1.Caption := xMois;     // et là, je vois apparaître f?vrier 2013 !
    Énervant non ?

  2. #2
    Modérateur
    Avatar de tourlourou
    Homme Profil pro
    Biologiste ; Progr(amateur)
    Inscrit en
    Mars 2005
    Messages
    3 876
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 61
    Localisation : France, Yvelines (Île de France)

    Informations professionnelles :
    Activité : Biologiste ; Progr(amateur)

    Informations forums :
    Inscription : Mars 2005
    Messages : 3 876
    Points : 11 363
    Points
    11 363
    Billets dans le blog
    6
    Par défaut
    Essaye plutôt avec 'mars' !

    Pourquoi une WideString ? Il faut alors probablement utiliser UTF8ToUTF16 et inverse ; voir http://wiki.freepascal.org/LCL_Unicode_Support/fr

  3. #3
    Membre confirmé
    Profil pro
    Inscrit en
    Avril 2010
    Messages
    248
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Avril 2010
    Messages : 248
    Points : 538
    Points
    538
    Par défaut
    Dans le OnCreate de la fiche principale des applications sous Windows devant afficher des dates j'ajoute:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
      for i:=1 to 12 do //les LongMonthNames sont en Ansi dans fpc 2.4.5, 2.7.1 etc...
        FormatSettings.LongMonthNames[i]:=SysToUTF8(FormatSettings.LongMonthNames[i]);
    André

  4. #4
    Membre confirmé
    Avatar de JP.NUAGE
    Profil pro
    Inscrit en
    Avril 2006
    Messages
    769
    Détails du profil
    Informations personnelles :
    Âge : 82
    Localisation : France

    Informations forums :
    Inscription : Avril 2006
    Messages : 769
    Points : 542
    Points
    542
    Par défaut
    Réponse à tourlourou : j'adore la première phrase ! aussi
    Lire cela un Dimanche matin, ça fait du bien !......
    Et aussi incroyable que cela puisse paraître, avec 'mars' aucun problème !!!!!
    ............................
    et je vais essayer, avec tout le respect que je te dois, la solution de alanglet

  5. #5
    Membre confirmé
    Avatar de JP.NUAGE
    Profil pro
    Inscrit en
    Avril 2006
    Messages
    769
    Détails du profil
    Informations personnelles :
    Âge : 82
    Localisation : France

    Informations forums :
    Inscription : Avril 2006
    Messages : 769
    Points : 542
    Points
    542
    Par défaut
    Rien à faire, j'ai toujours le ? dans f?vrier. Alors que sera Août ?

  6. #6
    Expert confirmé
    Avatar de Ph. B.
    Homme Profil pro
    Freelance
    Inscrit en
    Avril 2002
    Messages
    1 786
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 58
    Localisation : France, Haute Garonne (Midi Pyrénées)

    Informations professionnelles :
    Activité : Freelance
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Avril 2002
    Messages : 1 786
    Points : 5 918
    Points
    5 918
    Par défaut
    Bonjour,
    Citation Envoyé par JP.NUAGE Voir le message
    Décidément, les accents me cherchent
    J'ai codifié
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    var xMois : WideString;
    .
    .
    xMois := FormatDateTime('mmmm yyyy', Date - 30);    // Date est aujourd'hui
    ShowMessage(xMois);              //  ici je vois f?vrier 2013
    showMessage(AnsitoUtf8(xMois));   //  ici je vois février 2013
    xMois := AnsitoUtf8(xMois);
    .
    .
    Label1.Caption := xMois;     // et là, je vois apparaître f?vrier 2013 !
    Avec Lazarus 1.0.6 / FPC 2.6.0 sous Windows 2000,
    avec Lazarus 1.1.0 / FPC 2.6.1 sous Windows XP, j'obtiens la même chose :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    var xMois : WideString;
    // ...
    xMois := FormatDateTime('mmmm yyyy', Date - 30);
    ShowMessage(xMois);              //  => f?vrier 2013
    showMessage(AnsitoUtf8(xMois));   //  => février 2013
    xMois := AnsitoUtf8(xMois);
    Label1.Caption := xMois;     // => février 2013
    Paramétrage par défaut...
    Cela dit, je penserais qu'il y a un bug lors de l'initialisation des mois dans la variable DefaultFormatSettings.

  7. #7
    Membre confirmé
    Avatar de JP.NUAGE
    Profil pro
    Inscrit en
    Avril 2006
    Messages
    769
    Détails du profil
    Informations personnelles :
    Âge : 82
    Localisation : France

    Informations forums :
    Inscription : Avril 2006
    Messages : 769
    Points : 542
    Points
    542
    Par défaut
    et y a-t-il un endroit pour éventuellement corriger ce bug ?

  8. #8
    Membre éprouvé
    Profil pro
    Développeur informatique
    Inscrit en
    Janvier 2010
    Messages
    469
    Détails du profil
    Informations personnelles :
    Âge : 66
    Localisation : France

    Informations professionnelles :
    Activité : Développeur informatique

    Informations forums :
    Inscription : Janvier 2010
    Messages : 469
    Points : 1 100
    Points
    1 100
    Par défaut
    Bonjour

    J'ai l'impression que le fichier de resources qui contient les traductions en français a été laissé en ISO-8859 (utilisé dans les premières versions), alors qu'aujourd'hui Lazarus est prévu pour exploiter par défaut de l'UTF-8 (comme tout outil récent qui se respecte).

    D'où l'obligation de convertir le mois en UTF8. Il faudrait soumettre ce bug dans le bugtracker, si vous le constatez encore 1.1.

    Mais quand ce sera corrigé, les programmes qui font déjà cette conversion, ne vont plus afficher correctement les mois... et ça va en perturber plus d'un.

    Personnellement, j'évite toujours d'utiliser les formats de dates et autres données de localisation fournies avec le compilateur. Elles doivent à mon avis être définies à l'exécution, en fonction de la langue et du système, et comme ça il y a moins de soucis.

  9. #9
    Expert confirmé
    Avatar de Ph. B.
    Homme Profil pro
    Freelance
    Inscrit en
    Avril 2002
    Messages
    1 786
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 58
    Localisation : France, Haute Garonne (Midi Pyrénées)

    Informations professionnelles :
    Activité : Freelance
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Avril 2002
    Messages : 1 786
    Points : 5 918
    Points
    5 918
    Par défaut
    Citation Envoyé par JP.NUAGE Voir le message
    et y a-t-il un endroit pour éventuellement corriger ce bug ?
    Au démarrage de l'application, une fois les paramètres chargés, on peut intervenir sur le contenu de la variable DefaultFormatSettings de type TFormatSettings.

    Méthode courte et rapide :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    procedure CorrectMonth;
    begin
      DefaultFormatSettings.LongMonthNames[2] := 'Février';
      DefaultFormatSettings.ShortMonthNames[2] := 'Févr.';
      DefaultFormatSettings.LongMonthNames[8] := 'Août';
      DefaultFormatSettings.ShortMonthNames[8] := 'Août';
      DefaultFormatSettings.LongMonthNames[12] := 'Décembre';
      DefaultFormatSettings.ShortMonthNames[12] := 'Déc.';
    end;
    Méthode moins courte mais plus adaptable et évolutive :
    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
    procedure CorrectMonth;
    const
      LongMonth : TMonthNameArray = ('Janvier', 'Février', 'Mars', 'Avril', 'Mai', 'Juin',
                   'Juillet', 'Août', 'Septembre', 'Octobre', 'Novembre', 'Décembre');
      ShortMonth : TMonthNameArray = ('Janv.', 'Févr.', 'Mars', 'Avr.', 'Mai', 'Juin',
                   'Juil.', 'Août', 'Sept.', 'Oct.', 'Nov.', 'Déc.');
    var
      i: Integer;
    begin
      for i := 1 to 12 do
      begin
        DefaultFormatSettings.LongMonthNames[i] := LongMonth[i];
        DefaultFormatSettings.ShortMonthNames[i] := ShortMonth[i];
      end;
    end;

  10. #10
    Expert confirmé
    Avatar de Ph. B.
    Homme Profil pro
    Freelance
    Inscrit en
    Avril 2002
    Messages
    1 786
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 58
    Localisation : France, Haute Garonne (Midi Pyrénées)

    Informations professionnelles :
    Activité : Freelance
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Avril 2002
    Messages : 1 786
    Points : 5 918
    Points
    5 918
    Par défaut
    Bonjour,
    Citation Envoyé par tintinux Voir le message
    D'où l'obligation de convertir le mois en UTF8. Il faudrait soumettre ce bug dans le bugtracker, si vous le constatez encore 1.1.
    C'est fait !
    Bug 24029
    Citation Envoyé par tintinux Voir le message
    Personnellement, j'évite toujours d'utiliser les formats de dates et autres données de localisation fournies avec le compilateur. Elles doivent à mon avis être définies à l'exécution, en fonction de la langue et du système, et comme ça il y a moins de soucis.
    Je suis d'accord...

  11. #11
    Membre confirmé
    Avatar de JP.NUAGE
    Profil pro
    Inscrit en
    Avril 2006
    Messages
    769
    Détails du profil
    Informations personnelles :
    Âge : 82
    Localisation : France

    Informations forums :
    Inscription : Avril 2006
    Messages : 769
    Points : 542
    Points
    542
    Par défaut
    Il me semble en effet que, en attendant des jours meilleurs (le printemps est proche ), je vais en effet codifier directement les mois. Pas trop compliqué et la fonction copier/coller n'a pas été créée pour ne pas servir

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

Discussions similaires

  1. chiffre décimal toujours des problèmes
    Par _developpeur_ dans le forum Macros et VBA Excel
    Réponses: 12
    Dernier message: 26/09/2011, 21h15
  2. Toujours des problèmes sur IReport
    Par yaya0057 dans le forum iReport
    Réponses: 1
    Dernier message: 15/07/2008, 13h36
  3. Toujours des problème de "undefined reference to"
    Par Verbalinsurection dans le forum C++
    Réponses: 12
    Dernier message: 12/10/2007, 01h38
  4. [Sécurité][Sécurité]j'ai toujours des problèmes
    Par DSabah dans le forum Sécurité
    Réponses: 4
    Dernier message: 04/06/2007, 08h33
  5. SQL server et toujours des problèmes de dates ...
    Par constantin dans le forum MS SQL Server
    Réponses: 10
    Dernier message: 28/10/2005, 12h19

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