views:

135

answers:

2

I am working on a translation application in which users are allowed to give English input and I need to convert to a target language and display on a text box. I am facing problems in displaying unicode characters.

Complex characters are not rendering correctly. I know windows uses Uniscribe for rendering complex characters. So do I need to use that explicitly to get the correct rendering? What is the equivalent of Uniscribe in LINUX and MAC?

I am using C++ with wxWidgets framework and trying to display unicode characters on a text box. Any help would be great!

A: 

Considering that Uniscribe support in wxWidgets was merely a Google Summer of code idea this year, it seems unlikely that it's working today.

There's no trivial Linux or Mac equivalent for Uniscribe

MSalters
Thanks. If there is no equivalent in Linux, how do programs like web browsers render properly? I am bit confused.
Appu
I don't know for sure. Obviously, one alternative would be to do so themselves - just give the OS a bitmap to draw instead of a string. But as far as I know, one other common alternative is to just not render complex scripts at all. Mind you, simple stuff like Chinese doesn't require Uniscribe, that's just a matter of a proper font. The real complex stuff happens with e.g. Arabic or Tamil, where letter shapes depend on the surrounding text. That's what Uniscribe is for.
MSalters
A: 

Read up on Pango. It's the library that supports full OpenType rendering on Linux. Mac's another story.

bmargulies