には、どうするのがベストなフォーマットに対して地域対応された文字列AppleScript?

StackOverflow https://stackoverflow.com/questions/64146

  •  09-06-2019
  •  | 
  •  

質問

時スクリプトとして保存すると、バンドルとして開発が開始されましたが、の localized string コマンドの適切な文字列、例えばに Contents/Resources/English.lproj/Localizable.strings.この形式の文字列には、どうするのがベストなのプレースホルダ?つまり、どういうAppleScript相当 +[NSString stringWithFormat:]?

いった利用 do shell scriptprintf(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スタジオアプリだけでなく書面に簡単に記述します。い良いビットは柔軟性の高い総合スタジオアプリなので、そのすべてと、大変なルートです。

ライセンス: CC-BY-SA帰属
所属していません StackOverflow
scroll top