2009-11-27 16 views
18

私は国際化されたiPhoneプロジェクトを持っています。さまざまな${lang}.lproj/InfoPlist.stringsファイルでは、私は単一の鍵CFBundleName = "My App Name"を持っています。XCode - 複数のターゲット、複数の*国際化*名前?

これは1つのターゲットでうまくいきますが、複数のターゲットでうまく動作することはできません。

主なターゲットにはのファイルがいくつか翻訳されていますが、ライト版にはいくつかのファイルがInfoPlistMyAppLite.strings個あります。しかし、私はそれを設定する方法を把握することはできません。 InfoPlist.stringsの名前は石で設定されているようですので、私はそれを動的に置き換えることはできません。

アイデア?

答えて

34

面倒であれば、これは簡単です。ターゲットごとに1つの有効なInfoPlist.stringsを持つことができ、各セットが別のXcodeグループにある限り、それぞれ国際化することができます。

alt text

右クリックし、 "グループ&ファイル"(:このようなディレクトリ構造を設定し

:それは次のようになりますので、

.../AppName/ 
      en.lproj/InfoPlist.strings <-- Contains CFBundleDisplayName 
      it.lproj/InfoPlist.strings <-- ... 
      ... 
.../AppNameLite/ 
      en.lproj/InfoPlist.strings <-- ... 
      it.lproj/InfoPlist.strings <-- ... 
      ... 

は、XcodeのグループにそれらのファイルをインポートしますXcodeの左上)をクリックし、 "Target Membership"が表示されていることを確認してからターゲットを調べ、適切な文字列がそれぞれ有効になっていることを確認します。

+0

は完全に機能します。 –

+0

は、これがxcode 9で動作することを確認できます。 –

関連する問題