NSPredicateEditorのlocalize
ついにこの時が来ました。(どの時???)
NSPredicateEditorを使おうと決めたのです!!
まずは出したり引っ込めたりNSPredicateを取り出したりと遊びまくりました。
超便利です!!
そして、あの、超絶、面倒くさい、思い出したくない、ローカライズです。
さくっとググって出てきたのは、なんと、「素のままじゃ無理じゃね?」「NSRuleEditorからサブクラス作る方が早くね?」という見たくもない記述でした。
当然、私は見なかった事にしました。
そこに書かれたローカライズ用のフォーマットに何かを感じた私はそれを実行してみました。
するとどうでしょう!
サブクラス化する必要なんか全くありませんでした!!
普通に普通の要領でローカライズすれば良かったのです!
こんな感じ。
"%[All]@ of the following are true" = "%[すべて]@ の条件が一致したら"; "%[Any]@ of the following are true" = "%[いずれか]@ の条件が一致したら"; "%[title]@ %[contains]@ %@" = "%1$[タイトルが]@ %3$@ %2$[を含む]@"; "%[title]@ %[begins with]@ %@" = "%1$[タイトルが]@ %3$@ %2$[で始まる]@ "; "%[title]@ %[ends with]@ %@" = "%1$[タイトルが]@ %3$@ %2$[で終わる]@ "; "%[title]@ %[is]@ %@" = "%1$[タイトルが]@ %3$@ %2$[である]@ "; "%[title]@ %[is not]@ %@" = "%1$[タイトルが]@ %3$@ %2$[でない]@ ";
[]で囲まれているのがpopupメニューの要素。囲まれてない(%@だけ)がテキストフィールドとかNSDatePickerとかです。
3行目以降のローカライズされた文字列に注目。
あの、NSLocalizedStringでおなじみの1$とか2$とかがあります。そう、これで、位置を変更出来ちゃいます!
こいつが入ったファイルの名前を-[NSRuleEditor setFormattingStringsFilename:]に渡してやるか、IBの「Format File」に入れる(.stringsは不要)だけ。
超簡単です!
らくちんです。
ないすです。
泣きそうです!