Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

Make UILabel text Right Aligned if the text is in Arabic

I have implemented Language Localization in my iOS App. So, now user can set the Arabic Language in my iPad Application.

I am getting the localized string response from the server and now I want to set this localized string to my UILabel in Right To Left format with Right Alignment.

Update :

My server response is already in RTL format. Now, I just wanted to set the text alignment to right when I have Arabic text in my UILabel.

Right now I have to write code to set the alignment of UILabel based on the language.

So, I just want to know if there is any property available for UILabel by setting which I can make the text of UILabel Right Aligned in case of Arabic Language.

like image 783
Bhavin Avatar asked Feb 25 '14 07:02

Bhavin


1 Answers

For Swift3 //MARK: UILabel extension

extension UILabel {
func decideTextDirection () {
    let tagScheme = [NSLinguisticTagSchemeLanguage]
    let tagger    = NSLinguisticTagger(tagSchemes: tagScheme, options: 0)
    tagger.string = self.text
    let lang      = tagger.tag(at: 0, scheme: NSLinguisticTagSchemeLanguage,
                                      tokenRange: nil, sentenceRange: nil)

    if lang?.range(of:"ar") != nil {
        self.textAlignment = NSTextAlignment.right
    } else {
        self.textAlignment = NSTextAlignment.left
    }
}

to use this add following with your label :

detailLabel.text = details[0]

detailLabel.decideTextDirection()
like image 67
JaspreetKour Avatar answered Sep 28 '22 02:09

JaspreetKour