I've been looking around for some detailed information concerning the support of Unicode in LabVIEW.
There is some valuable information out there, work-around's and whatnot, but there are things that need to be covered still.
Some valuable LabVIEW & Unicode information can be found here:
After reading the document above, I came to realize that there are some LabVIEW items that are not fully supported.
Some of these items are essential for application development and therefore, someone must have realized and come up with a solution.
I am looking forward to regroup all those solutions, and this will hopefully help others in the future.
For now, I really hope that someone can enlighten me with some of their valuable "tricks" since I need to deploy my application soon.
Here's a list of items that I've had trouble with when it comes to localizing them:
- Run-time menus: As far as I know, there is no Unicode support for them. Is there a way to display multi-byte characters in them?
I have even tried changing my system locale settings and nothing. My run-time menu is generated dynamically.
- Page Captions (names of the tabs in a tab control): I found ONE work-around for this item, overlapping transparent string controls over the page captions,
but is that the only way around ?
I have lost the link to this solution, if anyone can spare me the link to the document, it'd be great!
- Window titles: Even when changing the locale settings, bizarre characters appear instead of the correct value. Even when the value doesn't have special characters
(like in the picture below - where the title should be "Configuration Panel" only the Letter "C" appears. I wonder if this related to the "spacing"
between the Unicode characters? LabVIEW displays "C o n f i g u r a t i o n P a n e l " in a string control when I read the Unicode data from my .xml file.
Apparently, someone has had the same problem:
Unicode supportable VI title and 'Tip strips'. I would like to know more about the "tweaking the language settings of your host computer" method
- Tips and Descriptions of ANY control & indicator: I found nothing here, but I am probably blindfolded 😉
- Ring control "drop-down" list: This might just be a misconception on my part, but take a look at the attached picture:
Apparently, the drop-down list on the ring control only displays the Chinese language correctly, and only displays 1 letter on the other languages
(English, Français and Español). My application loads the available languages depending on the localization files that it found on a specific directory.
In this case, Chinese.xml, English.xml, French.xml and Spanish.xml were in the folder at the time of the screenshot.
The xml files are encoded in UCS-2 Little Endian. I have tried prepending the "FFFE" BOM on each value, and no success.
If any of you have dealt with the problems listed above, I would GREATLY appreciate your input. Also, if there are any other controls that I didn't mention
and are not fully supported by LabVIEW when Unicode is enabled, please let me know, and I'll add them to the list!
Things to know:
My application is currently being developed in LabVIEW 2010 SP1
I'm using Arial Unicode MS as my default font everywhere on my application.
Other posts & references:
Thanks for your time,
Thanks for your reply Josh,
I had already looked at that article. That's where I got the idea of building my Run-time menu dynamically instead of having multiple ones (one per language). However, it is not revelant to the Unicode issue I'm afraid. As far as I know, run-time menus simply DO NOT support Unicode (for now).
My question is, how did others work around this issue? Did they decide not to include any RTM in their application? Did they give up and tried using a different approach? If so, which?
I am mainly looking for solutions available today, preferably from people that have had the same problems. We all know that LabVIEW might eventually support Unicode completely (let's hope it will) but in the meantime, I am sure there are some good "tricks" out there.
I came up with a solution to the ring drop-down list. It is pretty cheapo, but it works.
The idea is to use a listbox instead of a ring. Remember that each value must have the "FFFE" (hex) BOM prepended to it, as explained here. I know some of you may not have the required space on your UI to fit a listbox, the idea of using a ring is of course, to save some space but in my case it isn't a problem. See the attached image:
The ring text is shown until the first unicode character appears that contains a /00 this do all ansi-characters.
This is true for all U+nn00 characters too.
A workaround may be to use "Halfwidth and Fullwidth Forms" you find them in the range U+FF10 onwards.
In other words: replace all U+0021 ... U+006F characters by the characters where you have 0xFEE0 added to the values.
A replacement for the space-character may be U+202F (NARROW NO-BREAK SPACE) or U+F2001 (EM QUAD)
(Perform the replacements before you use "Tool_Unicode Update Ring Control.vi" which you find on Community: A List of Tips and Tools for using Unicode in LabVIEW)
There is a lot of good information on this thread so I highly recommend that you take a close look at some of the resources posted above. However, this is a really old thread and you may find it more helpful to start a new one.
Finally, i managed to work around, even if the result is not perfect. A space between every char is shown in the text ring. Does anyone know how to solve this last question?
I absolutley want to help you solve this problem you are encountering, but I'm having a bit of trouble understanding what the "last question" is. Since this thread is very old I would highly reccommend starting a new post with the last question you are looking to solve and allow the community to take a look at it with a fresh set of eyes.