iOS - выделение жирными строками в Localizable.strings - PullRequest
0 голосов
/ 11 февраля 2019

Есть ли способ выделить некоторые слова в файле Localizable, например, так?

"Pending network connection" = "<b>Pending</b> network connection";

У меня есть эта строка внутри, и я хочу выделить только определенные слова:

 "camSave" = "To complete onboarding:\n1. Tap Save and disconnect to disconnect from the camera.\n2. Connect to the internet.\n3. Log in to Cloud.";

Кстатия хочу использовать его внутри оповещения

Ответы [ 2 ]

0 голосов
/ 11 февраля 2019

Это можно сделать следующим образом:

  1. Разбить строку на шаблон и формат параметров.
  2. Обеспечить индивидуальную локализацию.
  3. Сформировать полную строку изшаблон и параметр.
  4. Найдите параметры в полной строке и примените форматы, используя NSAttributedString.

Так что в вашем случае файл Localizable.string будет выглядеть следующим образом

"%@ network connection" = "%@ network connection";
"Pending" = "Pending";

Теперь сформируйте полную локализованную строку

let complete = String(format: NSLocalizedString("%@ network connection", ""), NSLocalizedString("Pending", ""))

Затем найдите Range параметризованной строки в полной строке.

let range = complete.range(of: NSLocalizedString("Pending", ""))

Сейчаспримените любые атрибуты, которые вам нужно применить в этом диапазоне, сформировав NSAttributedString.

0 голосов
/ 11 февраля 2019

Вы можете использовать HTML-теги с NSAttributedString.Вот что я использовал:

static func convertFromHTMLString(_ input: String?) -> NSAttributedString? {
    guard let input = input else { return nil }

    guard let data = input.data(using: String.Encoding.unicode, allowLossyConversion: true) else { return nil  }
    return try? NSAttributedString(data: data, options: [NSAttributedString.DocumentReadingOptionKey.documentType : NSAttributedString.DocumentType.html], documentAttributes: nil)
}

Поэтому я преобразую входную строку в необработанные данные, используя формат UTF8.Затем я использую конструктор атрибутивной строки с данными, используя соответствующие флаги NSAttributedString.DocumentReadingOptionKey.documentType : NSAttributedString.DocumentType.html.

...