One of the goals of WeSay is to support user interfaces in languages with scripts that require complex shaping. Microsoft Windows has the ability to render complex scripts using their shaping engine called Uniscribe. However, some languages, such as Burmese, are not yet supported by Uniscribe. SIL has Graphite technology that deals with this, but up until now, a programmer had to do lots of difficult, custom work to enable Graphite support in an application on Windows.

Without Graphite, Burmese is all a jumble, showing the underlying characters and their basic forms but without any special contextual forms or reordering.
Burmese shaped without Multiscribe

With a Graphite font and a Graphite shaping engine, we get the correct shapes and orders for the various glyphs.
Sample Burmese shaped with Multiscribe

I spent the last month working on a project we have been calling Multiscribe. With Multiscribe, users can get the benefits of the Graphite shaping engine in their existing applications including Internet Explorer, Firefox, and even Word.

Uniscribe does not yet support Burmese. But now, with Multiscribe, WeSay will be able to properly display Burmese in our user interface.

Multiscribe works by wrapping Uniscribe so that any time an application would have called Uniscribe, the Graphite engine gets a chance to do its work. The Graphite engine only works with Graphite fonts and the rest are passed on to Uniscribe. Linux already has similar functionality in the form of PangoGraphite.