Contenu | Rechercher | Menus

Annonce

Si vous avez des soucis pour rester connecté, déconnectez-vous puis reconnectez-vous depuis ce lien en cochant la case
Me connecter automatiquement lors de mes prochaines visites.

À propos de l'équipe du forum.

#1 Le 17/07/2006, à 16:38

Goffi

[résolu] Lazarus: problème avec l'UTF-8

Bonjour,

A l'execution sur ma Kubuntu Dapper, Lazarus me dit que la police de l'editeur ne supporte pas UTF-8, contrairement à mon système, et que je peux en choisir une autre dans les options de l'editeur. Or, je ne trouve pas de police qui corresponde. Quelle police utilisez-vous ? Je cherche a récupérer de vieilles sources Delphi sous Lazarus, le résultat est convaincant, mais effectivement tous les caractères accentués ne passent pas, provoquant des résultats douteux, un simple changement de font peut régler le problème ?
En désespoir de cause, vous connaissez un logiciels/script qui converti les caractères unicode en équivalent ASCII non accentué ? Au pire je me débrouillerai avec sed ou tr hmm . Mais bon cette dernière solution ne peut être que temporaire, vu que je veux le support UTF-8 dans mes applications (support qui semble encore incomplet aux dires du wiki). Quid de vos expériences ?

Merci

Dernière modification par Goffi (Le 18/07/2006, à 01:45)


http://www.goffi.org

Hors ligne

#2 Le 17/07/2006, à 16:58

Link31

Re : [résolu] Lazarus: problème avec l'UTF-8

Une seule solution pour avoir le support des accents dans tes programmes :
- créer un fichier en UTF-8 (si tu utilises GTK2) ou en ISO-8859-15 (si tu utilises GTK+) avec un autre programme que Lazarus (ex.: Kwrite) : ce fichier doit contenir des constantes "string" avec les différents textes de ton programme
- inclure ce fichier dans ton code source et attribuer à chaque contrôle de la fenêtre le texte qui lui correspond en utilisant les constantes définies dans le fichier

Par exemple :
fr.inc :

_bouton1 = 'Cliquer ici !';
_label1 = 'Test UTF-8 : éàèùô';

Unit1.pas :

unit Unit1; 

{$mode objfpc}{$H+}

interface

uses
  Classes, SysUtils, LResources, Forms, Controls, Graphics, Dialogs, ExtCtrls,
  StdCtrls, Buttons, editos, Unix, StrUtils;

type

  { TMainForm }

  TMainForm = class(TForm)
    // ...
  private
    { private declarations }
  public
    { public declarations }
    procedure Init_texte;
  end; 

var
  MainForm: TMainForm;

const
  {$I fr.inc}

implementation

{ TMainForm }

procedure TMainForm.Init_texte;
begin
  bouton1.Caption := _bouton1; 
  label1.Caption := _label1; 
  // ...
end;

// ...

procedure TMainForm.FormCreate(Sender: TObject);
begin
  Init_texte;
end;

initialization
  {$I Unit1.lrs}

end.

Dernière modification par Link31 (Le 17/07/2006, à 17:01)

Hors ligne

#3 Le 18/07/2006, à 01:45

Goffi

Re : [résolu] Lazarus: problème avec l'UTF-8

Merci pour la réponse. Je n'ai plus l'avertissement au début (mais sans savoir pourquoi !). J'ai pu convertir mes fichiers en utilisant tcs que je viens de découvrir (j'ai du supprimer les fichiers *.lrs générés sous une autre distrib il y a quelques temps). Par contre j'ai des résultats curieux: avec un fichier lfm entièrement en utf-8, les accents passent bien dans les onglets d'un TPageControl, mais pas dans un TLabel. Enfin je devrais pouvoir m'en sortir...


http://www.goffi.org

Hors ligne

#4 Le 14/09/2006, à 23:36

manuker

Re : [résolu] Lazarus: problème avec l'UTF-8

J'ai résolu ce même problème en lançant Lazarus comme ceci dans un terminal:

LANG=fr_FR.ISO-8859-1 lazarus

C'est pratique!


Ubuntu Precise v12.04.2 - 64bits (depuis 2013)

Hors ligne