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

Discussion :

Affichage en plusieurs langues

  1. #1
    Membre habitué
    Inscrit en
    Janvier 2011
    Messages
    12
    Détails du profil
    Informations personnelles :
    Âge : 36

    Informations forums :
    Inscription : Janvier 2011
    Messages : 12
    Par défaut Affichage en plusieurs langues
    bonjours
    j'ai un probléme lors de l'affichage d'un texte si je veux affiché un text en japonnais ou chinoix ou arabe sa me met dans l'affichage de ma boite de dialogue des "???????????" là où y a ces caractère étrangers quelqu'un pourrais m’éclairer un peut merci d'avance

  2. #2
    Membre Expert
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Décembre 2011
    Messages
    1 255
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Développeur informatique

    Informations forums :
    Inscription : Décembre 2011
    Messages : 1 255
    Par défaut
    salut,

    j'ai clairement un problème d'encodage de la chaine de caractères ou du composant qui l'affiche.

  3. #3
    damien12345
    Invité(e)
    Par défaut
    Bonjour,

    Essaye de voir du côté de :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
     
    QTextCodec::setCodecForCStrings(QTextCodec::codecForName("UTF-8"));
    QTextCodec::setCodecForTr(QTextCodec::codecForName("UTF-8"));
    Je ne les utilise pas, mais je sais que si tu les places dans ton main celà peut marcher... J'ai laissé UTF-8, mais à toi de l'adapter pour les symboles asiatiques

  4. #4
    Membre habitué
    Inscrit en
    Janvier 2011
    Messages
    12
    Détails du profil
    Informations personnelles :
    Âge : 36

    Informations forums :
    Inscription : Janvier 2011
    Messages : 12
    Par défaut
    bonjours
    merci beaucoup ^^ pour se qui est des langages asiatiques (chinois coréen japonais) ça a apporter ces fruits en utilisant le UTF-16

    mais pour l'arabe ça ne s'affiche toujours pas . quelques conseils seront les bienvenues

  5. #5
    Membre Expert

    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Mai 2009
    Messages
    1 009
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 37
    Localisation : France

    Informations professionnelles :
    Activité : Ingénieur développement logiciels
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Mai 2009
    Messages : 1 009
    Par défaut
    Pas sûr que ça existe, UTP-16...

    Après je ne pense pas que quelqu'un connaisse les tables Unicode par cœur, alors renseigne-toi dessus (Wikipédia etc.)
    Codecs supportés dans Qt

  6. #6
    Membre Expert
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Décembre 2011
    Messages
    1 255
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Développeur informatique

    Informations forums :
    Inscription : Décembre 2011
    Messages : 1 255
    Par défaut
    Citation Envoyé par elendile Voir le message
    bonjours
    merci beaucoup ^^ pour se qui est des langages asiatiques (chinois coréen japonais) ça a apporter ces fruits en utilisant le UTP-16

    mais pour l'arabe ça ne s'affiche toujours pas . quelques conseils seront les bienvenues
    Je ne connais pas Qt, mais pour avoir faire du multilingue sous Windows, je peux dire que la grosse différence avec l'arabe est le RTL (right to left).

    En UTF-16, je pense que la chaîne (en arabe) est bien formatée, le composant qui l'affiche doit mal est configuré.

  7. #7
    Membre habitué
    Inscrit en
    Janvier 2011
    Messages
    12
    Détails du profil
    Informations personnelles :
    Âge : 36

    Informations forums :
    Inscription : Janvier 2011
    Messages : 12
    Par défaut
    oué j'ai corrigé c'est UTF-16 pardon.

    pour UTF-16 y a les caractère en arabes mais le problème persiste, il m'affiche toujours des "?????" à la place des caractère arabe .

  8. #8
    Membre habitué
    Inscrit en
    Janvier 2011
    Messages
    12
    Détails du profil
    Informations personnelles :
    Âge : 36

    Informations forums :
    Inscription : Janvier 2011
    Messages : 12
    Par défaut
    grâce à la doc que j'ai pu entamé j'ai finalement réussis faire quelque chose mais ça n'aboutis en rien voilà le code :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
     
    QByteArray encodedString = "لوحة المفاتيح العربية " //c'est écrit en arabe alarabia = langue arabe  ;
        QTextCodec *codec = QTextCodec::codecForName("UTF-16");
        QString string = codec->toUnicode(encodedString);
     
     
        QMessageBox::information(this, "  Titre de la fenêtre",string);
    voilà le string qui est en Qstring peut être entré dans un Qmessagebox::information maintenant ça m'affiche pas des "????" mais des carré déjà on avance un peu quelqu'un qui sais un peut plus pourrais m'aider s'il vous plait merci d'avance

  9. #9
    Membre Expert
    Inscrit en
    Avril 2010
    Messages
    1 495
    Détails du profil
    Informations forums :
    Inscription : Avril 2010
    Messages : 1 495
    Par défaut
    salut,

    essaye en récupérant tes séquences Unicode sur "charmap" (charmap.exe : table des caractères Unicode Windows pour de nombreuses langues et symboles)

  10. #10
    Membre habitué
    Inscrit en
    Janvier 2011
    Messages
    12
    Détails du profil
    Informations personnelles :
    Âge : 36

    Informations forums :
    Inscription : Janvier 2011
    Messages : 12
    Par défaut
    j'ai ouvert le charmap.exe et y a plein de caractère mais je fait quoi avec un logiciel externe ?!

  11. #11
    Membre Expert
    Inscrit en
    Avril 2010
    Messages
    1 495
    Détails du profil
    Informations forums :
    Inscription : Avril 2010
    Messages : 1 495
    Par défaut
    Pour récupérer les valeurs Unicode, à noter en hexadécimal de préférence, cela dit pourquoi tu n'utilises pas directement QString pour ta chaine au lieu de passer par un QByteArray, en plus, ça posera un problème d'endianness si je dis pas de bêtise , pour s'en assurer, change ta première valeur 65168 (0xfe90) par 37118(0x90fe), c'est qu'une supposition, je n'ai jamais utilisé Qt mais peut être y a t'il des "décorations" pour s'en prémunir, c'est à creuser quoi...

  12. #12
    Membre habitué
    Inscrit en
    Janvier 2011
    Messages
    12
    Détails du profil
    Informations personnelles :
    Âge : 36

    Informations forums :
    Inscription : Janvier 2011
    Messages : 12
    Par défaut
    j'ai essayé de faire directement par Qstring sa ne marche pas toujours des "?????"

  13. #13
    Membre Expert
    Inscrit en
    Avril 2010
    Messages
    1 495
    Détails du profil
    Informations forums :
    Inscription : Avril 2010
    Messages : 1 495
    Par défaut
    Si tu ne montres pas ton code qui t'amène à cette conclusion, ça va être difficile de te dire si tu fais bien ou pas :

    essaye comme ça :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    static const QChar data[5] = { 0xfedb, 0xfbff, 0xfeee, 0xfe95, 0x0000 };
    QString str(data, 5);
    ou ça, mais il faudra que tu regardes comment gérer le "bidimode" sur Qt...

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    static const QChar data[5] = { 0xfe95, 0xfeee, 0xfbff, 0xfedb, 0x0000 };
    QString str(data, 5);
    voici la doc dvp sur QString -> http://qt.developpez.com/doc/4.7/qstring/ et celle concernant l'internationalisation-> http://qt.developpez.com/doc/4.7/internationalisation/

  14. #14
    Membre habitué
    Inscrit en
    Janvier 2011
    Messages
    12
    Détails du profil
    Informations personnelles :
    Âge : 36

    Informations forums :
    Inscription : Janvier 2011
    Messages : 12
    Par défaut
    c'est bon j'ai trouvé comment c'est un peu délicat mais bon voilà se qu'il faut faire :
    on introduit une portion de ce programme :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    static const QChar data[20] = { 1604,1608,1581,1577,1575,1604,1605,1601,1575,1578,1610,1581,1575,1604,1593,1585,1576,1610,1577, };
        QString str(data, 20);
    
    QMessageBox::information(this, "  Titre de la fenêtre",str);
    information utiles :
    juste un détails j'ai entré un mot en "arabe" dans ce fufu dans la balise de "[CODE]" en "#" j'entre le mot en arabe mais enfaite aprés prévisualisation on ois qu'il est modifier en code ASCII avec chaque caractère suivis de &# et séparant avec des points virgules faut juste les enlevés et à la place des points virgules vous mettez virgule comme c'est montré dans le bout de code { 1604,1608,1581,1577,1575,1604,1605,1601,1575,1578,1610,1581,1575 etc..... et là vous récupérez tout ça sur la variable str en précisant le nombre de caractère qui a et voilà le tour est joué

    merci beaucoup minnesota sa m'a beaucoup aidé faut les transformé en forme ASCII

  15. #15
    Membre averti
    Homme Profil pro
    Étudiant
    Inscrit en
    Mai 2011
    Messages
    59
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Canada

    Informations professionnelles :
    Activité : Étudiant
    Secteur : High Tech - Multimédia et Internet

    Informations forums :
    Inscription : Mai 2011
    Messages : 59
    Par défaut
    Citation Envoyé par minnesota Voir le message
    Si tu ne montres pas ton code qui t'amène à cette conclusion, ça va être difficile de te dire si tu fais bien ou pas :

    essaye comme ça :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    static const QChar data[5] = { 0xfedb, 0xfbff, 0xfeee, 0xfe95, 0x0000 };
    QString str(data, 5);
    ou ça, mais il faudra que tu regardes comment gérer le "bidimode" sur Qt...

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    static const QChar data[5] = { 0xfe95, 0xfeee, 0xfbff, 0xfedb, 0x0000 };
    QString str(data, 5);
    voici la doc dvp sur QString -> http://qt.developpez.com/doc/4.7/qstring/ et celle concernant l'internationalisation-> http://qt.developpez.com/doc/4.7/internationalisation/
    bonjour tout le monde
    la lecture du langue arabe dans un textbox en c# pose le meme problème aussi. mais j'ai pas trouver le solution ?
    merci pour votre aide

  16. #16
    Membre confirmé
    Profil pro
    Inscrit en
    Septembre 2007
    Messages
    106
    Détails du profil
    Informations personnelles :
    Localisation : Belgique

    Informations forums :
    Inscription : Septembre 2007
    Messages : 106
    Par défaut
    bonsoir pour afficher la langue arabe ou autre tu doit faire comme ça:
    1°/
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    QTextCodec::setCodecForCStrings(QTextCodec::codecForName("UTF-8"));   
    QTextCodec::setCodecForTr(QTextCodec::codecForName("UTF-8"));
    2°/
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    QString s(QString::fromStdWString(L"..... "));
    ou
    QString s(QString::fromfromUtf8("..... "));
    ça doit fonctionner comme ça mais si ça ne fonctionne pas tu dois configurer ton Qt Creator.

    pour ton code la :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
     
    QString data[] = { QString::fromStdWString(L"..... ") , QString::fromUtf8("..... ") , ......... };
     
    QString str(data[.....]);
     
    QMessageBox::information(this, "  Titre de la fenêtre", str);

  17. #17
    Membre averti
    Homme Profil pro
    Étudiant
    Inscrit en
    Mai 2011
    Messages
    59
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Canada

    Informations professionnelles :
    Activité : Étudiant
    Secteur : High Tech - Multimédia et Internet

    Informations forums :
    Inscription : Mai 2011
    Messages : 59
    Par défaut
    Citation Envoyé par aliwatte Voir le message
    bonsoir pour afficher la langue arabe ou autre tu doit faire comme ça:
    1°/
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    QTextCodec::setCodecForCStrings(QTextCodec::codecForName("UTF-8"));   
    QTextCodec::setCodecForTr(QTextCodec::codecForName("UTF-8"));
    2°/
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    QString s(QString::fromStdWString(L"..... "));
    ou
    QString s(QString::fromfromUtf8("..... "));
    ça doit fonctionner comme ça mais si ça ne fonctionne pas tu dois configurer ton Qt Creator.

    pour ton code la :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
     
    QString data[] = { QString::fromStdWString(L"..... ") , QString::fromUtf8("..... ") , ......... };
     
    QString str(data[.....]);
     
    QMessageBox::information(this, "  Titre de la fenêtre", str);
    bonjou aliwatte
    ce QString n'est pas compréhensible par c# ??
    est ce qu'il ya un code pareil en c#.

  18. #18
    Membre Expert
    Inscrit en
    Avril 2010
    Messages
    1 495
    Détails du profil
    Informations forums :
    Inscription : Avril 2010
    Messages : 1 495
    Par défaut
    Salut,

    Tu n'es pas dans la bonne section, ici c'est C++...

    Pour C#, il faut poser ta question ici -> http://www.developpez.net/forums/f26...framework-net/
    mais avant, regardes si ta question n'y a pas déjà été traitée...

    Bon courage...

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

Discussions similaires

  1. Réponses: 7
    Dernier message: 26/09/2005, 17h50
  2. données en plusieurs langues
    Par arezki76 dans le forum MS SQL Server
    Réponses: 7
    Dernier message: 25/10/2004, 12h59
  3. Réponses: 2
    Dernier message: 09/10/2004, 11h35
  4. [DirectDraw7] Affichage de plusieurs image bmp
    Par SteelBox dans le forum DirectX
    Réponses: 3
    Dernier message: 24/04/2004, 19h00
  5. Comment gérer plusieurs langues ?
    Par InterSQL dans le forum MS SQL Server
    Réponses: 6
    Dernier message: 27/02/2004, 16h12

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