NSBundle に配置されている Localizable.strings を実行時に変更できると仮定しましょう。現時点では、その内容を変更しても、NSLocalizedStringは古い (キャッシュされた) 値を返します。
- アプリケーションの実行
- 特定の key1 <- value1 の LocalizableString を取得します
- Localizable.strings key1 = value2 を変更します
- <-- ローカリゼーション キャッシュを無効にするために、アプリケーションで何らかの処理を行う -->
- 特定の key1 == value2 の LocalizableString かどうかを確認します
私がすでに試したこと:
- [[NSBundble mainBundle] invalidateResourceCache]
- [UIApplication_performMemoryWarning]
- 辞書がないか調べてみました。NSBundle の ivar で、キャッシングに使用されます。
- NSBundleのGNUStep実装で確認しようとしましたが、ios 6.0のものとは異なります
私ができないこと (定義上): - [NSBundle localizableStringForKey:value:table] をスウィズルできない - マクロを変更できない - 一般に、元のプロジェクト コードに影響を与えることはできず、ステップ #4 で何かを追加するだけです。
これは、開発のみを目的としています。だから、AppStore などで公開する必要はないので、プライベートな方法や解決策は何でも構いません。
それで、質問はです。誰かがそれを行う方法を知っているか、それとも別の方法を教えてくれる人でしょうか? ありがとうございました。