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

Windows XP Discussion :

[Windows XP Pro SP3] problème d'affichage des chiffres de droite à gauche en arabe


Sujet :

Windows XP

  1. #1
    Membre à l'essai
    Profil pro
    Ingénieur
    Inscrit en
    Août 2007
    Messages
    16
    Détails du profil
    Informations personnelles :
    Localisation : France, Drôme (Rhône Alpes)

    Informations professionnelles :
    Activité : Ingénieur

    Informations forums :
    Inscription : Août 2007
    Messages : 16
    Points : 13
    Points
    13
    Par défaut [Windows XP Pro SP3] problème d'affichage des chiffres de droite à gauche en arabe
    Bonjour,
    Cela fait plusieurs jours que je bataille avec l'internationalise une IHM développée en C sous VS2005 en langue arabe. J'ai les options régionales correctes pour le symbole monétaire et les dates longues, codage UTF8 lettre & chiffre.

    Je pense que mon problème vient de l'OS Windows: quand je traduis un texte de type 'texte chiffres' j'ai le texte qui apparait toujours avant les chiffres:
    Par exemple, si je veux traduire en arabe 'AED 10.00' cela affichera dans mon IHM (traduit en francais) : '10.00 AED' au lieu de 'AED 10.00'.
    Même chose pour la date système: 25 fevrier 2013 s'affiche en arabe '25 2013 Février'.
    Par contre si je mets du texte en premier, cela fonctionne: 'lundi 25 fevrier 2013' s'affichera en '2013 fevrier 25 lundi' (traduit).

    J'ai essayé en passant par sprintf () pour faire l'inversion à la mano, en copiant caractére par caractère le buffer à afficher mais j'ai toujours le même problème.
    Je soupçonne un problème de windows car mon buffer d'affichage (vu en debug) est correcte (il contient la chaîne de droite à gauche en arabe 'AED 10.00') mais lors de l'affichage, il y a toujours inversion;
    je ne peux donc pas traduire un texte qui commence par un chiffre!!!

    La solution que j'ai trouvé est de gérer deux chaines que je positionne séparémment suivant la langue.

    Avez-vous déjà eu ce genre de problème avec des langues non latines ?
    Il n'y a pas le problème avec .NET et je n'ai rien trouvé sur le web pour du C/c++ sans .NET mais est-ce un problème windows ? et existe-t-il un patch pour le corriger ou une modif de la base de registre à faire?

    Merci d'avance pour votre aide,
    aVr

  2. #2
    Expert éminent sénior
    Avatar de JML19
    Homme Profil pro
    Retraité : Electrotechnicien Electronicien Informaticien de la SNCF
    Inscrit en
    Décembre 2010
    Messages
    14 993
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Corrèze (Limousin)

    Informations professionnelles :
    Activité : Retraité : Electrotechnicien Electronicien Informaticien de la SNCF
    Secteur : Transports

    Informations forums :
    Inscription : Décembre 2010
    Messages : 14 993
    Points : 23 335
    Points
    23 335
    Billets dans le blog
    10
    Par défaut
    Bonjour

    S'il s'agit d'un texte sans espace que ce passe t'il ==> lundi_25_février_2013 ?

  3. #3
    Membre à l'essai
    Profil pro
    Ingénieur
    Inscrit en
    Août 2007
    Messages
    16
    Détails du profil
    Informations personnelles :
    Localisation : France, Drôme (Rhône Alpes)

    Informations professionnelles :
    Activité : Ingénieur

    Informations forums :
    Inscription : Août 2007
    Messages : 16
    Points : 13
    Points
    13
    Par défaut
    Bonjour,
    et merci pour votre participation.
    En fait, je ne peux pas mettre de souligné.

    J'utilise Google Traduction pour mes libellés en arabe: GoogleTraductionArabe("25 février 2013") donne la date en arabe dans le bon ordre mais le le copié/collé de cette date donne "فبراير 2013 25" !!!
    Et c'est cela mon problème le jour (chiffres) ne veux pas se positionner à droite.
    J'ai demandé à des collègues connaissant la langue arabe et ils mont dit que "فبراير 2013 d25" est un format correcte (sans le 'd' que j'ai rajouté pour que cela s'affiche au bon endroit....).
    Dans l'exemple ci dessus, si on supprime le 'd', le 25 passe à gauche!!

  4. #4
    Expert éminent sénior
    Avatar de JML19
    Homme Profil pro
    Retraité : Electrotechnicien Electronicien Informaticien de la SNCF
    Inscrit en
    Décembre 2010
    Messages
    14 993
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Corrèze (Limousin)

    Informations professionnelles :
    Activité : Retraité : Electrotechnicien Electronicien Informaticien de la SNCF
    Secteur : Transports

    Informations forums :
    Inscription : Décembre 2010
    Messages : 14 993
    Points : 23 335
    Points
    23 335
    Billets dans le blog
    10
    Par défaut
    Si j'ai bien compris il ne reconnaît pas le caractère Arabe comme un texte dans le copier/coller ?

  5. #5
    Membre à l'essai
    Profil pro
    Ingénieur
    Inscrit en
    Août 2007
    Messages
    16
    Détails du profil
    Informations personnelles :
    Localisation : France, Drôme (Rhône Alpes)

    Informations professionnelles :
    Activité : Ingénieur

    Informations forums :
    Inscription : Août 2007
    Messages : 16
    Points : 13
    Points
    13
    Par défaut Pb d'affichage de l'arabe
    Oui, 'il' ne reconnait pas que le texte est en arabe et il fait une inversion.
    J'arrive à reproduire l'erreur de 2 manières différentes:
    - en utilisant le copier/coller sous XP d'un texte arabe commençant par un ou des chiffres,
    - en 'déboguant' mon programme, j'ai vu que le MultiByteToWideChar (UTF8,...) inverse de la même manière.
    Je pense à une configuration de Windows que je n'ai pas faite: mon XP est en français, j'ai rajouté les langues arabes et j'ai vérifié que les formats des options régionales correspondent à mes besoins.
    Je continue à chercher...

  6. #6
    Expert éminent sénior
    Avatar de JML19
    Homme Profil pro
    Retraité : Electrotechnicien Electronicien Informaticien de la SNCF
    Inscrit en
    Décembre 2010
    Messages
    14 993
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Corrèze (Limousin)

    Informations professionnelles :
    Activité : Retraité : Electrotechnicien Electronicien Informaticien de la SNCF
    Secteur : Transports

    Informations forums :
    Inscription : Décembre 2010
    Messages : 14 993
    Points : 23 335
    Points
    23 335
    Billets dans le blog
    10
    Par défaut
    Citation Envoyé par avrSag Voir le message
    Je pense à une configuration de Windows que je n'ai pas faite: mon XP est en français, j'ai rajouté les langues arabes et j'ai vérifié que les formats des options régionales correspondent à mes besoins.
    Je continue à chercher...
    Bonjour

    Dans la reconnaissance du texte Arabe sur une version Française d'XP il faut il me semble que tu n'arrives pas à déterminer la table ASCII correspondante au texte en Arabe.

    Je pense que le problème doit venir de cette table ASCII que tu n'as pas sur un XP en français, même si tu as mis la police Arabe.

    Car lors de l'écriture tu fais appelles à la police, mais lors d'un copier/coller tu fais appelles à la table ASCII des caractères

    Un peu comme la différence entre les caractères d'affichages à l'écran et les caractères imprimables, que tu envoies sur une imprimante.

    C'est pour cela qu'a été inventé le WYSIWYG (What you see is what you get) ce que l'on appelle communément l'aperçu avant impression.

  7. #7
    Membre à l'essai
    Profil pro
    Ingénieur
    Inscrit en
    Août 2007
    Messages
    16
    Détails du profil
    Informations personnelles :
    Localisation : France, Drôme (Rhône Alpes)

    Informations professionnelles :
    Activité : Ingénieur

    Informations forums :
    Inscription : Août 2007
    Messages : 16
    Points : 13
    Points
    13
    Par défaut
    J'ai vu sur http://msdn.microsoft.com/fr-fr/libr...v=sql.80).aspx
    qu'il existait un marqueur: 8207 ou hexadécimal 0x200F est le marqueur RLM (Right-to-Left Marker) que l'on utilise pour les BDD.
    Je vais voir si il y a l'équivalent sous VS2005.

  8. #8
    Membre à l'essai
    Profil pro
    Ingénieur
    Inscrit en
    Août 2007
    Messages
    16
    Détails du profil
    Informations personnelles :
    Localisation : France, Drôme (Rhône Alpes)

    Informations professionnelles :
    Activité : Ingénieur

    Informations forums :
    Inscription : Août 2007
    Messages : 16
    Points : 13
    Points
    13
    Par défaut [Resolu]
    Bon, je n'ai pas réussi à utiliser le RIGHT-TO-LEFT MARK dans mon code C sous VS2005 pour forcer le sens de lecture d'une chaine.
    Je vais donc utiliser 2 champs: un pour la devise et un autre pour le montant; je les inverserais suivant la langue.
    Pour le copier/coller, je ne sais pas comment modifier une table ASCII sous WinXP.
    Même si la solution n'est pas 'élégante' je mets mon fil de discussion en 'Résolu'.
    Merci à tous.
    aVr

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

Discussions similaires

  1. [ADSL] Problème d'affichage des pages
    Par adam22 dans le forum Dépannage et Assistance
    Réponses: 9
    Dernier message: 07/12/2005, 14h36
  2. Problème d'affichage des tables
    Par talere dans le forum Access
    Réponses: 6
    Dernier message: 24/10/2005, 13h02
  3. Problème d'affichage des caractères accentués
    Par ostaquet dans le forum JBuilder
    Réponses: 1
    Dernier message: 10/03/2005, 06h58
  4. [JTable] Problème d'affichage des données
    Par ddams dans le forum Composants
    Réponses: 2
    Dernier message: 15/09/2004, 17h07
  5. Réponses: 1
    Dernier message: 06/03/2003, 11h57

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