我想在手錶複雜功能中顯示包含在運行時設置的參數的本地化文本,例如「可用:3」,其中應在運行時設置「3」。
在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」,顯示文字?其中Localizable.strings
文件包含的條目
"TEST" = "Available: %i";
這工作
let str = String.init(format: NSLocalizedString("TEST", comment:" "), 3)
modularLargeTemplate.body1TextProvider = CLKSimpleTextProvider(text: str, shortText: str)
,如果Localizable.strings
是iOS應用的目標,而手錶擴展: