Currently Embedded Wizard does not support any special features for Arabic string support, like a shaping engine or a BiDi implementation. The reason for this fact is that Arabic string handling requires a complex shaping engine to deal with the specialties of the Arabic language. Furthermore, a BiDi engine would be necessary to handle all aspects concerning mixed left-to-right and right-to-left text drawing. This is currently out of scope due to the enormous development efforts. Nevertheless this article shows up the issues to be solved for Arabic strings and how it could be realized with the available techniques in Embedded Wizard:
- Right-to-left and left-to-right handling:
Embedded Wizard expects the character sequence always from left-to-right. To achieve right-to-left strings, you have the possibility to enter the characters directly in Embedded Wizard or in our Excel sheet template ‘Strings.xls ’as they should appear in left-to-right reading. Another possibility would be to extend the Visual Basic macro of the Excel sheet template to change the character order e.g.:
' change order for arabic strings -> first char 0x600-0x6FF
textSub = Right(text, textPos)
charVal = AscW(textSub)
If (charVal > 1535 And charVal < 1792) Then
arabText = ""
For I = 0 To (textLength - 1)
arabText = arabText & Mid(text, textLength - I, 1)
text = Left(arabText, textLength)
- Initial, medial, final and separated characters:
Arabic strings do not indicate upper-case or lower-case letters. The shaping engine decides for a character, whether the initial, medial, final or separated glyph will be rendered, according to its position within a string. To realize the correct Arabic string, you need a font that covers all single Arabic characters in its real appearance as a single character code within your font. With such a font you can edit the characters manually with respect to the correct shape at a certain position within a string.
- Accented characters:
All accented characters must be present within your font as single Arabic character in its real appearance as a single character code. Moreover each accented character must as well be present in it’s initial medial, final and separated shape.
The following example shows the implementation of Arabic strings as mentioned above:
const string Monday = "\Ufee6\Ufef4\Ufee8\Ufe9b\Ufefa\U0627";
const string Tuesday = "\U0621\Ufe8e\Ufe9b\Ufefc\Ufe9c\Ufedf\U0627";
const string Wednesday = "\U0621\Ufe8e\Ufecc\Ufe91\Ufead\Ufef7\U0627";
const string Thursday = "\Ufee6\Ufeb4\Ufef4\Ufee4\Ufccb\U0627";
const string Friday = "\Ufe94\Ufecc\Ufee4\Ufcc9\U0627";
const string Saturday = "\Ufe96\Ufe92\Ufeb4\Ufedf\U0627";
const string Sunday = "\Ufeaa\Ufea3\Ufefb\U0627";
If you include the required font range for the Arabic characters in your font the result in Embedded Wizard shows the weekdays in Arabic language with right-to-left orientation.
Note: The shown content is just an example which is not verified from a native Arabic speaker. We apologize if there are some typos in the above example.