プロフィール

Author:はるかわ しおん
なにか、新しいものを。
そして、楽しいものを。

FC2カウンター


上記の広告は1ヶ月以上更新のないブログに表示されています。
新しい記事を書く事で広告が消せます。
  • InterfaceBuilder で文字列を分離

Xcode 4.5 の IB で文字列をリソースファイルとして切り出したい。
これは各国語向けにローカライズ (多言語対応) する形でやりたい。

・・・とまぁ、そういう Android の strings.xml ではまったく苦労せずにやれることを iPhone/iOS でもやりたいと考えたのですが、いったいどうやればよいのか皆目見当がつきません。
どうも、Android ほどに洗練された方法はなさそう・・・?


一番近いと思ったのがこちら。

XcodeでStoryboardをローカライズして自動でstringsをアップデート

どうやら文言を .strings ファイルに切り出せるらしいのだが、かんじんの「.strings に定義した文字列を IB から参照する」方法がよく分からない。
ま、それは分かったとしても、オブジェクトごとの ID が「GJ7-S6-YGt.text」とかになってしまうらしく・・・これじゃあ、Excel で文言を管理しておいて Android とうまく共用する・・・みたいなことができません。

# しかも IB の変更に備えてスクリプトをわざわざ仕掛けないといけない・・・。
# Android に慣れてる身からすると、(だいぶ便利になったんだろうが) 不便である。


そのほか、User Defined Runtime Attributes の "Localized String" という期待度大のものもあるのだが・・・。

User Defined Runtime Attributes の Localized String

"Localized String は機能しない" みたいな結論ばかりらしく、これも没。



結局どうしたかというと、仕方ないので InfoPlist.strings でどうこうするのはあきらめました。
で、Localizable.strings にフツーに文字列定義して、NSLocalizedString() を viewDidLoad() で呼んで、UIButton だの UILabel だのに手動で設定することとしました。

求む、ベストプラクティス・・・。



コメント

コメントの投稿

   管理者にだけ表示を許可する
上記広告は1ヶ月以上更新のないブログに表示されています。新しい記事を書くことで広告を消せます。