luc desruelle's Blogue

Navigateur communautaire
annuler
Affichage des résultats de 
Rechercher plutôt 
Vouliez-vous dire : 

Afficher un code dans plusieurs langues ou LabVIEW multilingue plurilingue unicode

Desruelle_luc
Trusted Enthusiast

Je développe des logiciels sous LabVIEW dans plusieurs langues : Russe, Chinois, portugais, français, .... pour afficher les texte, menu, gestion erreur,... .Cette question revient souvent sur le forum. Ce post est une compilation de mes réponses du forum sur le sujet.Cela permet de "centraliser" les réponses sur ce sujet.A la fin du post je donne les liens vers les réponses du forum cela permet de laisser la place à la vision d'autres développeurs sur le sujet.

 

I] Histoire ASCII, code Page, unicode et non unicode

I.1) Histoire

A l'origine du système actuel de codage des ordinateurs se trouve le standard ASCII (American Standard Code for Information Interchange). Il représente le codage numérique de 128 signes. Il est assez évident que ce nombre réduit de signes, s'il suffit pour le codage des caractères usuels de l'anglo-américain, ne permet pas le codage des graphèmes spécifiques d'autres langues européennes, ni même d'une.

 

A partir du moment où les logiciels de traitement de texte se sont développés et diffusés dans le monde, il a fallu l'étendre à 256 numéros de code : ASCII étendu puis ANSI.

 

Par la suite les OS ont gérés plusieurs langues différentes : Attribution d'un code unique à tous les caractères utilisés dans les différentes langues du monde et donc la définition d'un jeu unique, universel, de caractères : c'est le standard Unicode. Dans cette idée un caractère est codé sur un U8, U16, U32

 

Il ne faut pas confondre le multi-byte et unicode. En unicode le caractère est unique dans n’importe quel OS, en multi-byte le caractère a une valeur mais est affiché en fonction des paramètres de l’OS.

 

Par exemple il existe un Chinois simplifié, écrit de la gauche vers la droite.

 

I.2) LabVIEW ne supporte pas l'unicode

LabVIEW supporte les caractères « multi-byte » et pas Unicode en natif (en option via fichier ini avec LV2011). Il interprète et affichedonc les caractères Unicode selon l’OS et surtout l’option « Options régionales et linguistiques -> langues pour les programmes non Unicode ».

 

Si vous tapez du chinois sur votre clavier (ou copier-coller depuis la traduction de google…) vous pouvez mettre du chinois, et même faire un soft mulitlingues.

 

L'avantage avec l'unicode serait de pouvoir affiché Russe et Chinois sur le même logiciel, comme Internet Explorer.

Mais LabVIEW ne supporte pas l'unicode en standard.

 

I.3) si vraiment vous voulez utiliser l'unicode

voila des trucs pour y arriver : https://decibel.ni.com/content/docs/DOC-10153

Soutenir l'unicode dans LabVIEW sur le forum idea exchange : http://forums.ni.com/t5/LabVIEW-Idea-Exchange/Support-Unicode/idi-p/921449

 

Il est possible d'ajouter le support de l'Unicode dans LabVIEW. Pour cela tu peux editer le LabVIEW.ini et ajouter "UseUnicode=TRUE" (sans les guillemets 😉

Voici un lien qui explique un peu plus en detail l'utilisation de l'Unicode dans LabVIEW.

 

I.4) Je déconseille d'utiliser l'unciode avec LabVIEW car non supporté

Mais comme LabVIEW ne supporte pas l'unicode en standard, je déconseille de l'utiliser.

par exemple : un Message To User (?) une boite de dialogue? si c'est cela, la boite de dialogue standard n'est pas unicode donc faire comme indiquer dans mon retour, cf une boite de dialogue Russe, sinon tu fais une boite de dialogue "maison", avec une string en unicode.

 

 

II] Exemple chinois

 

original.png  original2.png

 

Configuration Windows XP pour prise en charge caractères non Unicode

Démarrer -> Paramètres -> Panneau de configuration -> Options régionales et linguistiques ->

  • Langues -> Prise ne charge langue supplémentaires -> Installer les fichiers pour les langues d’Extrême-Orient
  • Options avancées -> langues pour les programmes non Unicode -> Chinois (république de chine (RPC)
  • Redémarrer l’ordinateur

 

III] Un exemple pour le Russe

original4.png 

IV] Mise en garde sur le nom des VI

Le code LabVIEW est compilé, mais le fichier de l'exe contient la liste des fcihiers. Si dans cette liste, un caractère n'est pas transposable dans la liste des caractères non unicode de la langue de l'OS, l'exe est brisé.

 

la solution est comme toujours de suivre la régle d'être en ASCII court, donc utiliser les caractères non unicode universels sur les OS, donc les caractères Anglais!

pas de é ou è ou ç ou à dans les nomns de VI ou autres! bonne chance

 

V] quelques liens sur le forum

quelques liens

http://forums.ni.com/t5/Discussions-au-sujet-de-NI/Afficher-des-textes-en-chinois/td-p/2761932

http://forums.ni.com/t5/Discussions-au-sujet-de-NI/Texte-chinoix-sur-face-avant/td-p/1855663

http://forums.ni.com/t5/Discussions-au-sujet-de-NI/Menu-unicode-codepage/td-p/2688015

 

VII] Localizing Your LabVIEW Application to Different Languages

Les conseils de National instruments pour la localisation

http://www.ni.com/tutorial/3603/en/ 

 

 

VIII] TestStand LabVIEW UI Crashes When Using Chinese Characters

https://knowledge.ni.com/KnowledgeArticleDetails?id=kA03q000001DrabCAC&l=fr-FR

 

Issue Details

  • I am localizing TestStand™ to Chinese. When I try to run the shipped TestStand LabVIEW™ User Interface (UI), it crashes. Why?
  • TestStand is using Chinese localization but the Chinese characters aren't appearing correctly. How can I fix this?
  • After modifying the INI language files in TestStand and running the source code for the LabVIEW UI, LabVIEW crashes. Can I fix this?
  • Using UTF-8 Unicode to display Chinese causes my TestStand LabVIEW UI to crash. Is this expected behaviour?

 

Luc Desruelle | avatar_ld.gifVoir mon profil | Mon blog LabVIEW

CLA : Certified LabVIEW Architect / Certifié Architecte LabVIEW

Co-auteur livre LabVIEW : Programmation et applications

LabVIEW Champion

Contact

banniere champion.png

banniere Luc Livre NXG Champion.png

Luc Desruelle | Mon profil | Mon blog LabVIEW | Auteur livre LabVIEW : Programmation et applications - G Web
Certified LabVIEW Architect (CLA) & Certified TestStand Developper (CTD) | LabVIEW Champion

MESULOG - LinkedIn site | NERYS - NERYS Group
| directeur CEO MESULOG
| CODIR - NERYS group