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
Partager