Unicode et Delphi

Discussion de programmation pour éviter d'empiéter dans les autres forums

Modérateurs : Modérateurs, Développeurs

Hug
Régulier(ère)|Régulier|Régulière
Régulier(ère)|Régulier|Régulière
Messages : 107
Inscription : 28 avr. 2004 6:38

Unicode et Delphi

Message par Hug »

J'ai vu avec Antonio pour me lancer dans la traduction des menus
de Photofiltre en Coréen. Mais d'apres Antonio, l'éditeur DELPHI ne sais
pas gérer l'Unicode, la compilation ne marche donc pas.

Est-ce que kkun voit une solution ?

Je ne connais pas DELPHI, ni l'editeur, mais n'est-il pas possible
de compiler en ligne de commande ?
Benjamin
Membre d'honneur
Membre d'honneur
Messages : 1075
Inscription : 29 oct. 2003 14:53
Version de PhotoFiltre : 6.0
Système d'exploitation : Windows 2000 SP 4
Processeur : Pentium IV 2,4Ghz
Mémoire RAM : 512Mo DDR 333
Localisation : 21

Message par Benjamin »

En fait le problème est plus complexe que ca... La VCL de Borland ne supportes pas l'unicode en standard... Il y a des controles qui permettent de développer une application unicode en Delphi :

http://tnt.ccci.org/delphi_unicode_controls/

Mais ca me semble assez galére de remplacer les controles même si GExperts permet en théorie de le faire assez rapidement (à condition de le compiler correctement si l'on ne veut pas perdre ses propriétés)

Par contre dommage que tu n'ais pas utilisé GNU GetText pour le multi-langue car apparement l'unicode est supporté...
Antonio
Administrateur(trice)|Administrateur|Administratrice
Administrateur(trice)|Administrateur|Administratrice
Messages : 12836
Inscription : 28 oct. 2003 22:49

Message par Antonio »

Je pense pas que ça règlerait le problème des menus (affichage des captions), si ?
Benjamin
Membre d'honneur
Membre d'honneur
Messages : 1075
Inscription : 29 oct. 2003 14:53
Version de PhotoFiltre : 6.0
Système d'exploitation : Windows 2000 SP 4
Processeur : Pentium IV 2,4Ghz
Mémoire RAM : 512Mo DDR 333
Localisation : 21

Message par Benjamin »

Ben normalement si puisque tu remplaces tes controles VCL par TTnt controles

Par exemple ton TMainMenu tu le remplace par TTntMainMenu

TButton par TTntButton etc.

Du coup toutes les propriétés Caption sont transtypées en WideString ce qui permet de gérer l'unicode. (Il y a aussi un editeur de propriétés pour l'inspecteur d'objet)

En plus bonne nouvelle il y a une version pour Delphi 6 Perso :D

A mon avis c'est pas pour tout de suite :?
Antonio
Administrateur(trice)|Administrateur|Administratrice
Administrateur(trice)|Administrateur|Administratrice
Messages : 12836
Inscription : 28 oct. 2003 22:49

Message par Antonio »

Ouai, faut regarder ça de plus pret mais je pense que ça risque de pas être simple
Hug
Régulier(ère)|Régulier|Régulière
Régulier(ère)|Régulier|Régulière
Messages : 107
Inscription : 28 avr. 2004 6:38

Message par Hug »

Petite question, quelle version de DELPHI est necessaire pour
compiler Photofiltre ou le projet qui génère le plg ?

Antonio a propose de compiler ce projet sous un Delphi Coreen.
Cela peut, peut-etre, resoudre le probleme de facon tempo.

Peut-on compiler un projet de ce type avec un version d'evaluation
de DELPHI ? Si oui, je peux alors DL une version d'evaluation a
l'adresse suivante et tester une compilation.

http://www.borland.co.kr/products/downl ... elphi.html
Benjamin
Membre d'honneur
Membre d'honneur
Messages : 1075
Inscription : 29 oct. 2003 14:53
Version de PhotoFiltre : 6.0
Système d'exploitation : Windows 2000 SP 4
Processeur : Pentium IV 2,4Ghz
Mémoire RAM : 512Mo DDR 333
Localisation : 21

Message par Benjamin »

Oui ca doit être possible aussi en effet!
Hug
Régulier(ère)|Régulier|Régulière
Régulier(ère)|Régulier|Régulière
Messages : 107
Inscription : 28 avr. 2004 6:38

Message par Hug »

Pour Info, voici la reponse pour Xnview :

http://80.190.230.71/viewtopic.php?t=750

Il utilise en fait l'ansi codepage 949 pour le coréen,
je pense avoir propose a Antonio, parmi les
differentes sources, le fichier de traduction code
en 949. Mais je ne sais pas au final quel fichier
avait été compilé.
De plus, avec DELPHI, je ne sais pas s'il faut coder
des options speciales pour prendre en compte
l'ansi 949 a la compil.
Antonio
Administrateur(trice)|Administrateur|Administratrice
Administrateur(trice)|Administrateur|Administratrice
Messages : 12836
Inscription : 28 oct. 2003 22:49

Message par Antonio »

Ce n'est pas de l'unicode alors !?

ce qu'il faut savoir aussi, c'est que le fichier plg est une dll standard donc on est obligé d'utiliser Delphi pour le générer
Benjamin
Membre d'honneur
Membre d'honneur
Messages : 1075
Inscription : 29 oct. 2003 14:53
Version de PhotoFiltre : 6.0
Système d'exploitation : Windows 2000 SP 4
Processeur : Pentium IV 2,4Ghz
Mémoire RAM : 512Mo DDR 333
Localisation : 21

Message par Benjamin »

Apparement il s'agit d'une page de caractères multibyte (2 octets par caractéres vraisemblablement) de 8224 caractères :D

Tous les détails ici :

http://www.itscj.ipsj.or.jp/ISO-IR/149.pdf
Benjamin
Membre d'honneur
Membre d'honneur
Messages : 1075
Inscription : 29 oct. 2003 14:53
Version de PhotoFiltre : 6.0
Système d'exploitation : Windows 2000 SP 4
Processeur : Pentium IV 2,4Ghz
Mémoire RAM : 512Mo DDR 333
Localisation : 21

Message par Benjamin »

Quoique je suis pas sur en fait car j'ai trouvé ca :

http://www.microsoft.com/globaldev/refe ... cs/949.htm

Par contre ce n'est pas de l'unicode car en unicode tous les caractères sont codés sur 2 octets alors que là ce n'est pas le cas...

Pour utiliser cette page de code il faut donc en théorie choisir le charset :

HANGEUL_CHARSET dans la font d'un composant (mais il doit y avoir un moyen de mapper le defaut charset par contre il faut que la font supportes ce charset...
Benjamin
Membre d'honneur
Membre d'honneur
Messages : 1075
Inscription : 29 oct. 2003 14:53
Version de PhotoFiltre : 6.0
Système d'exploitation : Windows 2000 SP 4
Processeur : Pentium IV 2,4Ghz
Mémoire RAM : 512Mo DDR 333
Localisation : 21

Message par Benjamin »

Ca marche :

J'ai posé un Edit

Dans font j'ai choisi : CHAR_SET = HANGEUL_CHARSET

Puis j'ai fait dans le code :

Edit1.Text = Chr($81) + Chr($41)

et j'ai obtenu le caractère de la page de microsoft!!!

Par contre pour taper c'est une autre histoire!!!
Antonio
Administrateur(trice)|Administrateur|Administratrice
Administrateur(trice)|Administrateur|Administratrice
Messages : 12836
Inscription : 28 oct. 2003 22:49

Message par Antonio »

Le pb c'est que je vais pas modifier le CHAR_SET au niveau de tous les composant ! je sais même pas si tous les composants ont cette proriété d'ailleurs ?

Il y a l'API GetACP qui donne le code page actif mais je sais pas comment le modifier. J'ai regardé au niveau des fonctions de conversion mais ça marche avec du WildChar. J'ai pas encore trouvé les bonnes fonctions...
Benjamin
Membre d'honneur
Membre d'honneur
Messages : 1075
Inscription : 29 oct. 2003 14:53
Version de PhotoFiltre : 6.0
Système d'exploitation : Windows 2000 SP 4
Processeur : Pentium IV 2,4Ghz
Mémoire RAM : 512Mo DDR 333
Localisation : 21

Message par Benjamin »

C'est une propriétés de l'objet TFont donc elle doit être présente tout le temps...

Il suffit peut être de choisir le langage Koreen pour que ca se fasse tout seul...
Antonio
Administrateur(trice)|Administrateur|Administratrice
Administrateur(trice)|Administrateur|Administratrice
Messages : 12836
Inscription : 28 oct. 2003 22:49

Message par Antonio »

Pour les menus par exemple c'est grillé