OS から標準の文字列を取得する公式の方法はありませんが、すべての文字列がローカライズされた文字列ファイルにある可能性が高く、それらのほとんどはシミュレーターに存在します (アプリからの文字列は含まれません)。シミュレーターには存在しませんが、フレームワークからのほとんどすべての文字列が必要です)。
シミュレーターのフレームワーク ディレクトリは、Xcode のインストール ディレクトリに対して相対的であり、次のようなものです (メモリから入力し、必要に応じてバージョンを変更します)。
Xcode.app/Contents/Developer/Platforms/iPhoneSimulator.platform/Developer/SDKs/iPhoneSimulator6.1.sdk/System/Library/Frameworks/UIKit.framework/
まず、UIKit.framework/en.lproj/*.strings
(または English.lproj または en_US.lproj) を調べます。文字列ファイルは plist であり、通常、デバイスではバイナリ plist になります (このようなファイルは "bplist00" で始まります)。これらを開くにはさまざまな方法があります。TextWrangler は plist を XML として自動的に表示し、コマンドライン ツールplutil
は他の形式に変換します。私はbashエイリアスを使用します
alias plist-dump='plutil -convert xml1 -o /dev/stdout --'
文字列が見つかったら、いくつかのオプションがあります。
次のようなものを使用して、実行時にフレームワークから直接ロードします
[[NSBundle bundleWithIdentifier:...] localizedStringForKey:@"DONE" value:nil table:...]
これはお勧めできません。異なる OS バージョンで動作することを保証するものではありません。(実際には、"Done" のような文字列はおそらく動かないでしょうが、別の方法は簡単なので大騒ぎする価値はありません。)
文字列をプロジェクトにコピーします。これを自動的に実行して既存の Localizable.strings とマージするツールについては知りませんが、おそらくどこかに存在し、書くのはそれほど難しくありません。少し法的に疑わしい(ただし、関心のある言語の文字列を目でコピーするよりもはるかにそうではありません)。Apple の NDA に関する懸念を避けるために、プレリリース SDK でそれを行うことは絶対に避けます。
文字列ファイル全体を eg にコピーし、 のUIKit.strings
ようなものを使用しますNSLocalizedStringFromTable(@"DONE",@"UIKit",nil)
。著作権侵害の可能性大!
実際には、Apple が iOS から iOS アプリに少数の文字列/画像をコピーすることを気にする可能性は低いと思います。それらをAndroidアプリにコピーすることは、まったく別の問題です...