Membres inscrits :668
Membres en ligne : 0
Invités en ligne : 8


|
| Conversation (Résolue) : les lettre accentué dans wxwidget |
sajaris (Membre)
Inscrit le : 23-11-2010
Messages: 47
Snippets: 0
Tutoriels: 0
Hors ligne |
Bonjour,
J'utilisait wxwidget 2.8.8 pour mes développements. Ensuite j'ai téléchargé avant hier la version 2.9 et j'ai compilé comme pour la version 8: MONOLITHIC=1 SHARED=1 UNICODE=1 USE_OPENGL=1 BUILD=release
Tous s'est bie npassé, quand je recompile mes projet, a part des petits trucs. MAis ce que j'a iconstaté et je comprend pas et cela est mon probleme ce sont les caractère accentué qui s'affichait tres bien et la c'est compliqué, ca s'affiche bizarrement les é à è etc...
je les affichait avec en utilisant _("")
Que dois je faire?
| |
|
Xaviou (Administrateur)
Lieu: Annecy (74)
Inscrit le : 27-08-2007
Messages: 1191
Snippets: 23
Tutoriels: 6
Site web
Hors ligne |
Salut.
Je suppose que tu n'utilisais pas UNICODE avec la version 2.8
En fait, si tu utilises UNICODE, il faut que tes fichiers sources soient encodés en UTF-8.
Je ne sais pas quel IDE tu utilises, mais il y a généralement une commande permettant de modifier l'encodage d'un (ou plusieurs) fichiers sources.
@+ Xav'
|
Le nouveau portail wxWidgets francophone : www.wxdev.fr Ben en fait, vous y êtes déjà...
|
sajaris (Membre)
Inscrit le : 23-11-2010
Messages: 47
Snippets: 0
Tutoriels: 0
Hors ligne |
salut,
et pourtant j'utilisais aussi UNICODE et mes fichiers étaient codé UTF-8 comme tu l'a dit.
Cette fois pareil et j'ai des probleme.
| |
|
Harrys (Nouveau membre)
Inscrit le : 06-01-2011
Messages: 8
Snippets: 0
Tutoriels: 0
Hors ligne |
J'ai rencontré le même problème pour l’internationalisation d'un projet. Toutes les chaînes traduites qui à l'origine comportaient des accents restent dans la langue d'origine. A première vue, il s'agit d'un problème d'encodage.
| |
|
sajaris (Membre)
Inscrit le : 23-11-2010
Messages: 47
Snippets: 0
Tutoriels: 0
Hors ligne |
et comment tu t'y est pris?
| |
|
Xaviou (Administrateur)
Lieu: Annecy (74)
Inscrit le : 27-08-2007
Messages: 1191
Snippets: 23
Tutoriels: 6
Site web
Hors ligne |
Salut. Je viens de refaire un petit test : le problème vient apparemment du passage à wxWidgets-2.9.x
Si tu utilises la macro _("...") pour tes chaines de caractères, il faut que ton fichier soit encodé en ANSI. Si au contraire tu utilises la macro _T("..."), il faut que l'encodage soit UTF-8.
Ne me demande pas pourquoi, je n'en sais rien.
Mais à mon avis, si tu as des caractères accentués dans ton application, c'est qu'elle est en français et que tu n'as pas l'intention de la traduire dans d'autres langues. Tu peux donc sans hésiter remplacer les _("...") par des _T("..."), ainsi, tu garderas la compatibilité avec wx-2.8 et wx-2.9
@+ Xav'
|
Le nouveau portail wxWidgets francophone : www.wxdev.fr Ben en fait, vous y êtes déjà...
|
sajaris (Membre)
Inscrit le : 23-11-2010
Messages: 47
Snippets: 0
Tutoriels: 0
Hors ligne |
ca marche en effet ! mais je mettrais a jour le logiciel pour qu'il n'utilise pas par défaut les accents.
| |
|
Harrys (Nouveau membre)
Inscrit le : 06-01-2011
Messages: 8
Snippets: 0
Tutoriels: 0
Hors ligne |
Pour répondre à ta question, j'ai pas encore trouvé de solution. Je pense qu'il faut que je convertisse mes fichiers encodés en cp1252 vers de l'UTF8. Problème, je dois avoir environ 50 classes donc le faire tout manuellement avec Notepad++, je pense que je vais vite déchanter. Je suis justement en cours de recherche de solution.
Si vous avez une solution, je suis preneur.
Edit: Je viens de tester en effectuant la conversion d'un unique fichier de mon projet. La compilation ne fonctionne pas. 3 raisons envisageables: - la compilation de wxWidgets sans l'option --enable-unicode (je ne l'ai pas mise) - Cygwin - les fichiers ne sont pas tous avec le même encodage (je n'y crois pas du tout)
Dernière modification par Harrys (22-07-2011 16:38:49)
| |
|
Xaviou (Administrateur)
Lieu: Annecy (74)
Inscrit le : 27-08-2007
Messages: 1191
Snippets: 23
Tutoriels: 6
Site web
Hors ligne |
Salut.
J'ai bien une petite combine, mais c'est de la bricole en ligne de commande :
Tout d'abord, téléchargee iconv et ses dépendances : libIconv-bin et libIconv-dep. Dans ces deux archives, tu trouveras un dossier "bin" dans lequel se trouovent des dll et un exécutable.
Places ces fichiers dans un dossier termporaire : il doit y en avoir 4 : - iconv.exe - libcharset1.dll - libiconv2.dll - libintl3.dll
N'oublies pas de faire une sauvegarde de tes fichiers sources avant de faire la manip.
Crées, dans ce dossier, un fichier batch (par exemple, "translate.bat") et places le code ci-dessous à l'intérieur (n'oublies pas d'adapter le chemin de base contenant les fichiers à convertir).
Code:@echo off set ROOT_DIR=C:\Dev\MkvTools for /R %ROOT_DIR% %%f IN (*.cpp) DO ( echo %%f iconv.exe -f CP1252 -t UTF-8 %%f > %%f1 del %%f move %%f1 %%f ) for /R %ROOT_DIR% %%f IN (*.h) DO ( echo %%f iconv.exe -f CP1252 -t UTF-8 %%f > %%f1 del %%f move %%f1 %%f ) pause
Exécutes-le (double-clic) et normalement, tous les fichiers ".cpp" et ".h" ont du être convertis en UTF-8
Bonne chance, et @+ Xav'
|
Le nouveau portail wxWidgets francophone : www.wxdev.fr Ben en fait, vous y êtes déjà...
|
Harrys (Nouveau membre)
Inscrit le : 06-01-2011
Messages: 8
Snippets: 0
Tutoriels: 0
Hors ligne |
Merci, je vais essayer ça quand j'aurais résolu ce problème de prise en charge de l'UTF-8.
Edit: Après réflexion, c'est moi qui avait un problème. L'encodage de mon catalogue était en UTF-8 alors que mon code source était en iso.
Sans commentaires ...
Dernière modification par Harrys (22-07-2011 18:09:44)
| |
|
|