には、どうするのがベストなフォーマットに対して地域対応された文字列AppleScript?
-
09-06-2019 - |
質問
時スクリプトとして保存すると、バンドルとして開発が開始されましたが、の localized string
コマンドの適切な文字列、例えばに Contents/Resources/English.lproj/Localizable.strings
.この形式の文字列には、どうするのがベストなのプレースホルダ?つまり、どういうAppleScript相当 +[NSString stringWithFormat:]
?
いった利用 do shell script
と printf(1)
.ありそうです。
解決
OS X10.10以降, でできるはずAppleScriptスクリプトの使用目的-C.あしながら、その方法を呼びObjective-C方法からAppleScriptとして、電子メールや資料の この翻訳ガイド.は、Objective-Cの開発私たちも集に向けてこの構文は、interpolatesのメソッドのパラメータとその値:
use framework "Foundation"
tell the current application's NSWorkspace's sharedWorkspace to openFile:"/Users/me/Desktop/filter.png" withApplication:"Preview"
結果:
true
+[NSString stringWithFormat:]
は難しい。でvarargリストとして最初のパラメータが必要となりうる力の両方のフォーマット文字列と引数を同じ方法でパラメータとします。以下の結果エラーがAppleScriptに両手でシングルNSArrayのパラメータ予想、概念的には、Cの配列NSStrings:
use framework "Foundation"
the current application's NSString's stringWithFormat:{"%lu documents", 8}
結果:
error "-[__NSArrayM length]: unrecognized selector sent to instance 0x7fd8d59f3bf0" number -10000
代わりに使用する代替構文に見えるようにするAppleScriptハンドラの一番人気で、Objective-Cのメッセージ。また、強制戻り値(NSStringオブジェクト) text
:
use framework "Foundation"
the current application's NSString's stringWithFormat_("%lu documents", 8) as text
結果:
"2087 documents"
の"パラメータ構文を@nlanzaつポイントを、このAppleScriptで使う NSInvocation 下のフードです。にObjective-C NSInvocationを送信することができるメッセージオブジェクトとともに以下のウェブサイトに配列のパラメータ値が、必ずしもマッチングの各値を特定のパラメータとします。参照 この記事 一部の使用例NSInvocationととしています。
他のヒント
とくいので、 printf(1)
の共通の解決策です。
バックナンバーは、ものやや複雑なものとして、使AppleScriptスタジオでは電話へのObjective-Cオブジェ/授業からAppleScriptコードの call method
書式文書化され こちらの.
そのまえに使用できるようなこと:
call method "stringWithFormat:" of class "NSString" with parameters {formatString, arguments}
の下振れることはもちろん、記述する必要があり、AppleScriptスタジオアプリだけでなく書面に簡単に記述します。い良いビットは柔軟性の高い総合スタジオアプリなので、そのすべてと、大変なルートです。