#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 . 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