1

同じコードベースを使用していくつかのプロジェクトを1つのプロジェクトにマージし、アプリケーションのバージョンごとに異なるターゲットを使用することにしました。

私のアプリケーションは、デフォルトで英語を使用して7つの言語に翻訳されています。他の言語は、スウェーデン語、オランダ語、ドイツ語、フランス語、ポーランド語、スペイン語です。翻訳は以前は魅力のように機能していました。私はを使用していて、翻訳されたものNSLocalizedStringを持ってLocalizable.stringsいます。ただし、プロジェクトをマージし、InfoPlist.stringsファイルも追加したので、アプリケーションはデフォルトのテキスト(英語)を使用するように要求します。アプリケーションを起動して「共有場所」の質問を取得すると、ローカライズされた言語で質問が表示されます(したがって、OSはローカライズを取得します)が、アプリケーションの残りの部分は英語のままです。

ファイルは正しく翻訳されており、エラーはありません。私はいくつかの言語をテストしましたが、すべて英語です。CFBundleDevelopmentRegionたとえばに設定するとSwedish、アプリ全体が代わりにスウェーデン語になります。したがって、ローカリゼーションは機能しますが、アプリはシステム設定を無視します。

私は何かが足りないのですか?

4

1 に答える 1

2

私は自分の問題に対する答えを見つけました。いくつかの文字列ファイルがあります。1つはアプリの翻訳用で、もう1つは呼び出された各ターゲット用で、ローカライズされたアプリ名InfoPlist.stringsだけが含まれています。これらはターゲットごとに異なるため、含めることはできません。CFBundleDisplayNameCFBundleNameLocalizable.strings

プロジェクトからファイルを削除したInfoPlist.stringsところ、アプリが再びローカライズされました。

于 2012-05-09T20:35:41.533 に答える