[SOLVED] why (arabic with english) text refuses to align right?

Issue

This is the string I use:

CASE 1

    var word1 = "عبد الله"
    var word2 = "restaurant"
    label.text = " \(word1) found your review on \(word2) useful."

Result:

a

CASE 2

    var word1 = "عبد الله"
    var word2 = "restaurant"
    label.text = "note: \(word1) found your review on \(word2) useful."

Result:

b

Question

so, how do I make the first word to wrap right? if the first word is arabic, it gets wrapped to the left, but if the first word is english the situation is expected, so how make the word1 to show up when first word on the left?

I tried both

label.textAlignment = NSTextAlignment.Left

and

label.textAlignment = NSTextAlignment.Natural

without any luck.

Solution

Unicode has two marker characters (LTR: 0x200E, RTL:200F). These are invisible, but control the direction, I just need to add this \u{200E} to force the wrapping direction.

 \u{200E} \(word1) found your review on \(word2) useful.

EDIT:
see full tutorial here, for more info.

Answered By – DeyaEldeen

Answer Checked By – Cary Denson (BugsFixing Admin)

Leave a Reply

Your email address will not be published.