0

実行時に設定された引数を含むローカライズされたテキストをウォッチ コンプリケーションに表示したいと考えています。
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」などの実際の値をどのように追加するかということです。

4

1 に答える 1

0

iOS とまったく同じように実行できます。

let str = String.init(format: NSLocalizedString("TEST", comment:" "), 3)
modularLargeTemplate.body1TextProvider = CLKSimpleTextProvider(text: str, shortText: str)  

Localizable.stringsファイルにエントリが含まれている 場所

"TEST" = "Available: %i";  

これLocalizable.stringsは、iOS アプリと watch 拡張機能のターゲットである場合に機能します。
ただし、 で同じことを行う方法がわかりませんCLKSimpleTextProvider.localizableTextProvider(withStringsFileTextKey: „TEST“)。実際、実行時の引数と一緒に使用できず (明らかに)、上記のソリューションと比較して (明らかに) 利点がない場合、
なぜ a が存在するのかまったく想像できません。localizableTextProvider

于 2016-11-16T13:43:51.077 に答える