実行時に設定された引数を含むローカライズされたテキストをウォッチ コンプリケーションに表示したいと考えています。
iOS では、これは簡単です。ローカライズされたフォーマット文字列を定義し、このフォーマットに次のような実際のパラメーターを挿入します。
let str = String.init(format: NSLocalizedString("TEST", comment:"Test"), 3)
Localizable.strings
ファイルにエントリが含まれている 場所
"TEST" = "Available: %i";
watchOS 3 では、コンプリケーションを更新したい場合は、
func getCurrentTimelineEntry(for complication: CLKComplication, withHandler handler: @escaping (CLKComplicationTimelineEntry?) -> Void)
そこで、適切な合併症のタイプが提供されている場合、複雑なテンプレートを選択し、次のようにテキストを設定できます。
let modularLargeTemplate = CLKComplicationTemplateModularLargeStandardBody()
modularLargeTemplate.headerImageProvider = CLKImageProvider.init(onePieceImage: UIImage(named: "Complication/Modular")!)
modularLargeTemplate.headerTextProvider = CLKSimpleTextProvider.localizableTextProvider(withStringsFileTextKey: „TEST“)
ファイルckcomplication.strings
がエントリなどを含む 場所
"TEST" = "Available"
この場合、コンプリケーションは「利用可能」と表示されます。
問題は、表示されたテキストに「3」などの実際の値をどのように追加するかということです。