Adding support for Right-To-Left/complex script?

Hi all.

I’ve been checking out the FText and culture classes for a while, looking for a place where I can add support for complex script languages. As you might (or might not) know, characters have different forms in complex script alphabets, and they can change depending on where they appear in the word or sentence (see http://en.wikipedia.org/wiki/Persian_script). This requires text to be modified at some point after it’s been entered and before it’s actually displayed to the user. I’ve found a number of classes dealing with cultures, but those deal mostly with numbers, days of week, currency symbols and the sort, and I haven’t found anything that can help me with complex script yet. If any one can point me in the right direction, I’d be very grateful :slight_smile:

Hi Arshia,

As you’ve surmised we don’t currently have support for complex script alphabets. We have plans to integrate a font shaping library in the future, though I can’t give you an exact date.

We actually distribute the shaping library we are likely to integrate with our GitHub source. http://site.icu-project.org/ provides a shaping library we would likely use.

As for where you’d go about doing such an implementation yourself… we would definitely make changes to SEditableText in Slate to perform the shaping automatically, but to make ti available to other use-cases… perhaps FText.Shape()? It would return a new FText with the shaped text (since FText are intended to behave immutably).

I honestly haven’t put much thought into this yet. :frowning:

Thanks for the info. I’m gonna have a look into ICU and see what I can come up with. In the meantime, it’s nice to know this is already planned. I’m definitely gonna be looking forward to the time when it’s officially added into the engine :slight_smile: