Cal Henderson mükemmel "Understanding Bidirectional (BIDI) Text in Unicode." okuyun.
İster inanın ister,
UILabel
İstediğin şekilde dışarı atarken değil. Sağdan sola bir dize sağladınız (Arapça başlayarak). Bu hakkı sola doğru göstermeye başlar. Daha sonra soldan sağa doğru yerleştirdiği soldan sağa bir İngilizce dizeyi gömdünüz. Daha sonra dönemi görüyor ve sağdan sola uzanıyor. Çünkü bu, içinde İngilizce olan bir Arapça dizgedir (en iyi
UILabel
anlatabilir). Eğer olması gerekiyordu ne
gömülü Arapça ile soldan sağa dizedir. Bu, dizeyi soldan sağa karakterler ile başlatmanız gerektiği anlamına gelir. İki seçenek: Başlangıca İngilizce'yi ekleyin veya dizenin başlangıcını LTR moduna bağlamak için sıfır genişlikli Soldan Sağa İşaret'i (U + 200E, LRM) kullanın.
Objective-C:
self.label.text = @"\u200eكتب just bought: Disguise Kit.";
Swift:
self.label.text = "\u{200E}كتب just bought: Disguise Kit."
U + 200E hakkında iyi haber görüntülemek önce güvenle her LTR dizeye ekleyebilirsiniz olmasıdır . LTR dilleri için yerelleştirilmiş dizelerinizin başlangıcında bile güvenle kullanabilirsiniz. Gereksizse, hiçbir şeye zarar vermez.
diğer şeylerin bir çift
not: ya pape gibi daha iyisi bir şey: (D her iyi öğrenci gibi) كتب ile sınamak daima ككك ile bu şeyleri test etmek asla. Aksi halde, Arapça'nın geriye doğru yerleştirildiğini söyleyemezsiniz. Ben çok seviyorum çünkü farklı şekilde geriye doğru görünüyor. test ederken
Ayrıca, Xcode Arapça düzen bilmiyor unutmayın. Kodunuzda herhangi bir statik dizge yazarsanız, bunlar editörde geriye doğru görüntülenir, ancak UI'de doğru şekilde görüntülenecektir. Beni delirtiyor.
Bu bir RTL sorunu mu? Arapça'yı LTR'yi göstermeye teşvik edebilir misiniz? –
@JamesWebster Ben öyle düşünmüyorum. RTL problemi ise, neden sadece Arapça kelimeyle başlayan bu dava için? – user1300503
Cümle RTL'ye başlayacağından, (خخخ sağ baş sola başlıyor), geriye kalan kelimeleri çizmek için LTR'ye değişiyor gibi görünüyor. –