2016-11-15 56 views
0

我想在手表复杂功能中显示包含在运行时设置的参数的本地化文本,例如“可用:​​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应用的目标,而手表扩展:

回答

0

我们可以做到这一点酷似iOS中。
但是,我不知道如何处理CLKSimpleTextProvider.localizableTextProvider(withStringsFileTextKey: „TEST“)。其实,我无法想象为什么一个localizableTextProvider存在,如果它不能与运行时参数一起使用(显然),并且与上面的解决方案相比并没有提供任何优势(显然)。

相关问题