2016-11-15 64 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存在,如果它不能與運行時參數一起使用(顯然),並且與上面的解決方案相比並沒有提供任何優勢(顯然)。

相關問題