У меня есть RelativeDateTimeFormatter, который я использую для показа таких строк: «Следующий розыгрыш лотереи через 2 дня» «Следующий розыгрыш лотереи завтра»
Это происходит из файла строк с форматом строки, подобным этому "Next lottery draw %@"
Моя проблема в том, как мне правильно локализовать это, когда% @ находится в другом месте строки. Например, на японском языке% @ находится где-то посередине строки.
Вот мой код для настройки форматера даты.
let exampleDate = Date().addingTimeInterval(-15000)
let formatter = RelativeDateTimeFormatter()
formatter.context = .dynamic
let relativeDate = formatter.localizedString(for: exampleDate, relativeTo: Date())
let myString = String(format: NSLocalizedString("string_key", comment: ""), relativeDate)
У форматеров есть контекст, который вы можете передать, чтобы сообщить форматировщику, где будет использоваться строка. https://developer.apple.com/documentation/foundation/formatter/context
И один из случаев называется dynamic
, который говорит, что он будет определять его во время выполнения. Однако я не могу понять, как это работает или как я должен использовать RelativeDateTimeFormatter с этим.