Загрузить текст на пенджабском языке в iOS - PullRequest
0 голосов
/ 29 апреля 2018

Я получил ответ от бэк-энда в нижеприведенной форме, я хочу отображать контент на пенджабском, панджабском, гурмухи и английском языках одновременно,

  {
            "AK_Index" = "APNE SEVAK KEE AAPE RAKE";
            Ang = 747;
            Author = "Guru Arjan Dev Ji";
            Bani = "<null>";
            "Bani_ID" = "<null>";
            English = "Guru Nanak has met the Supreme Lord God; I am a sacrifice to Your Feet. ||4||1||47||";
            "English_Initials" = gnmptckb;
            Gurmukhi = "guru nwnku imilAw pwrbRhmu qyirAw crxw kau bilhwrw ]4]1]47]";
            "Gurmukhi_Initials" = "gnmpqckb]";
            ID = 32133;
            Kirtan = Kirtan;
            "Kirtan_ID" = 2853;
            Punjabi = "gurU nwnk Awpxy prm pRBU nUM iml ipAw hY Aqy aus dy pYrW qoN GolI jWdw hY[";
            Raag = "Raag Soohee";
            "Teeka_Arth" = "hy pRBU! mYN qyry crnW qoN sdky jWdw hW[ ijs mnu`K nUM gurU nwnk iml ipAw, aus nUM prmwqmw iml ipAw ]4]1]47]";
            "Teeka_Pad_Arth" = "kau = nUM, qoN ]4]1]47]";
        }

Прикрепленный скриншот, как будет выглядеть результат. Скриншот от андроида. Я хочу точно такой же результат в iOS.

enter image description here Как этого добиться в iOS. Любая помощь будет оценена.

Ответы [ 3 ]

0 голосов
/ 01 мая 2018

На мобильном конце вы ничего не можете сделать. Вы можете попросить сервер отправить данные в кодировке UTF-8 вместо простой английской строки.

English = UTF-8 encoded English string data//data for hello
Gurmukhi =  UTF-8 encoded Punjabi string data //data for ਪਜੌਬਹਗਕਤਚਜ 

Теперь вы можете создать строку для отображения на этом языке в виде: -

 let englishString = String(data: English, encoding: .utf8)
 let punjabiSring = String(data: Gurmukhi, encoding: .utf8)

Инициализатор

init?(data: Data, encoding: String.Encoding)
0 голосов
/ 01 мая 2018

Наконец-то он заработал, используя шрифт "Gurblipi.ttf", который внутренне изменяет текст на английском языке на пенджабский.

let attributedString = NSMutableAttributedString()

for shabadDetail in shabadDetailList {
    attributedString.append(NSMutableAttributedString(string: shabadDetail.gurmukhi, attributes: [NSAttributedStringKey.font : FontHelper.guruLippi(fontsize: textview.font!.pointSize), NSAttributedStringKey.foregroundColor: TextFormatting.gurbaniColor]))
    attributedString.append(NSAttributedString(string: TextFormatting.doubleLineBreak))
}

textview.attributedText = attributedString
textview.textAlignment = .center

Кодирование не требуется от собственного или внутреннего интерфейса.

0 голосов
/ 29 апреля 2018

Я создал расширение для изменения цвета шрифта какой-либо конкретной строки.

extension NSMutableAttributedString {

func setFontColorAndSize(_ textToFind : String,withColor color: UIColor,andFont font :UIFont){
    let range = self.mutableString.range(of: textToFind, options: .caseInsensitive)
    if range.location != NSNotFound {
        setAttributes([NSAttributedStringKey.font : font,NSAttributedStringKey.foregroundColor :color], range: range)
    }
}

// This is how you change 
let resultString = NSMutableAttributedString(string: "hello") // convert any string to mutable attributed 
resultString.setFontColorAndSize("hel", withColor: UIColor.grey, andFont: UIFont.boldSystemFont(ofSize: 17)) // pass the string you want to set particular color and font 
UILabel.attributedText = resultString // than update the label
...