2011-10-19 9 views
0

Xcode 4でXIBローカリゼーションを整理しようと多くの試みが不成功に終わった後、私はここでヘルプリクエストを投稿することにしました:)。XCode4でのXIBローカライゼーションは私を狂っていますか?

1)私はXIBファイル、例えばMyViewController.XIBを選択します。

2)右パネルの[ローカリゼーション]領域の[+]ボタンをクリックしますが、言語を選択することはできません。クリックした後、理由はわかりませんが、別のリソースが選択されています(別のXIBファイルなど)。

3)Xcodeのinferfaceでは何も起こりませんが、ファイルシステムではファイルMyVieController.XIBがen.lprojフォルダ内で移動(MOVED!NOT COPIED)されます。

4)私は新しいローカリゼーションを追加します(今回は私が言語を選択できます)、たとえばイタリア語。

5)XCodeインターフェイスでは、MyViewController.XIBの2つの「子」が表示されます。英語とイタリア語です。

6)「メイン」のMyViewController.XIBとその英語バージョンが同じファイル(en.lprojフォルダ内)を指しているため、最初の変更が自動的に2番目と2番目の。

あなたの誰かがこの行動についての説明をしていますが、それは私には非常に奇妙なようです。

ご回答ありがとうございます。

Marco

+0

動作に問題がありますか、またはXCodeの動作が異なるようにしたいのですか?後者の場合、私が考えることができる唯一の答えは「Appleがこれをこのように実装することを選択したからです。 (つまり、「中立」ロケールがなく、どのロケールがデフォルトであるかを選択することなく)。 – millimoose

+0

@Inerdia。まず、あなたの早急な返信に感謝します。 – MarcoSciamanna

+0

@Inerdia。 Appleのドキュメントがあまり明確でないこと、インターネットで読んだチュートリアルがあまり明確でないため、正しい動作がどれか分かりません。 しかし、私はいくつかのローカリゼーションが必要な場合、英語のローカリゼーションが常に存在しなければならず、たとえばフランス語とイタリア語のみのローカライゼーションはできません。 – MarcoSciamanna

答えて

3

ローカライゼーションに関する限り、この動作は意図的であり、ベストプラクティスと一貫していると思います。

一般に、Resourcesディレクトリの最上位レベルは、ローカライズされていないXIB/NIBのみです。特定のXIBをローカライズしたら、それをプライマリ言語フォルダに保存し、他の言語のフォルダにすべてのローカライズを保存する必要があります。

基本的に、Xcodeは、「メイン」MyViewController.XIBをen.lprojフォルダ(ネイティブ開発領域として設定したもの)に移動することで、問題を作成しないように支援しています。そのファイルの新しい言語。

OS X(とiOS)は、リソースがResourcesまたは現在アクティブな言語に存在しない場合(CFBundleDevelopmentRegion/K// Localization native development regionで指定)デフォルトの言語を使用するのに十分スマートです。

フランス語とイタリア語のバージョン(英語なし)のみを作成する場合は、CFBundleDevelopmentRegionを適切な言語コードに設定してください。そうすれば、OSはローカライズされていないリソースバンドル。

これを設定したら、Xcodeは変換されたファイルを要求されたデフォルトのディレクトリに入れます。少し掘り下げると、project.pbxprojファイルを手動で編集すると、developmentRegionを英語以外のもの(frでテスト済み)に設定することができ、Xcodeはローカライズされたファイルを適切な場所に置くことができます。

+0

あなたの完全な返信をありがとう! – MarcoSciamanna

0

私はこの回答を投稿するのにはとても新しいので、このソリューションにとって最適な場所でない場合は、私を解雇しないでください。

これはあなたの質問に対する直接的な答えではありませんが、 "誰でもあなたの説明があります..."私はあなたのトピック "XCode4のXIBローカリゼーションが私を狂わせさせるのですか?その質問に対する答えを探していたので、私はその答えを他のところで見つけました。

私の問題は、英語とフランス語で自分のXIBファイルをローカライズした後、あなたのポイント1)-5)で概説したように、フランス語ではなく英語のXIBのみを表示します。 Xcodeでフランス語のXIBが作成され、正しく実行されていて、無関係の何かが問題を引き起こしていたことが判明しました。

次の解決方法はThe Big Nerd Ranch Guideから借りています。私はここで投票を期待していない、すべての信用BNRから優れた本に行く。

Xcode(BNRによると、私のケースでは真実であることが判明しました)では、Xcodeで新しいリソースファイルの変更が無視されることがあります。解決するには、iPhoneからアプリケーションを削除してから、[製品]メニューから[クリーニング]を選択します。これにより、アプリケーションがゼロから再構築されます。私の場合は、これを実行した後、フランスのXIBsが期待どおりに美しくロードされました。

関連する問題