2011-07-15 16 views
5

ローカライズされた文字列で奇妙な問題が発生しました。私は 'en.lproj'フォルダに 'Localizable.strings'しか持っておらず、正常に動作します。すべての文字列がデバイスに表示されます。次にコンパイルして実行すると、文字列のIDだけが表示されます。私が何も変えなくても、&のビルドをクリックしても次回は再びうまく動作し、次回はIDで再び表示されます。xcodeローカライズされた文字列がロードされていません

これはなぜ起こっているのですか?それは私がいつも2回構築する必要があるという厄介なものです。

+0

エラーを示していますか?何とかファイルがコピーされていません。 –

+0

いいえエラーメッセージはまったくありません。 – boreas

答えて

3

プロジェクトに複数のLocalizable.stringsがあるかどうかを確認してください。 1つにそれらをマージして私のためにそれを解決しました。

私は同じ問題に実行してきた:

+0

複数の言語を使用している場合、これで問題は解決しません。 .lprojフォルダには、言語ごとに "Localized.strings"ファイル(必要に応じて+ InfoPlist.strings)を格納する必要があります。それらをすべてマージした場合は、重複したキーが数多くあります。 – GtotheB

+0

@GtotheB私はあなたを正しく理解していれば、すべての言語を一緒にマージしたいのですか?いいえ、しないでください! SAME言語を使用するファイルのみをマージします(例えば、すべてのen.lprojのMerge Localizable.stringsとde.lprojのすべてのLocalizable.stringsを別々にマージします)。 – Reggian

+0

私はこれをあなたが意味していると仮定しました。はい、言語表をマージすると、結果が悪くなります。しかし、例えば英語の表を組み合わせると、キーが重複する可能性があります。したがって、そのようにすると、キーが[now]単一テーブル全体で一意であることを確認してください。 – GtotheB

4

私のソリューションは、一番下にある(あなたが例えばShareKitを使用するすべての外部コードをチェックしてください)交互ランが(ただし英語のみのために)正しい、そして間違った翻訳をもたらします。アプリへの引数として「-NSShowNonLocalizedStrings YES」を追加

が得られた:

Localizable string "MyKey" not found in strings table "Localizable" of bundle CFBundle 

だから、私は文字列としてバンドルから直接キーファイルをロードし、それをダンプしようとしました。まあ、それは正常に動作しなかった時、それは内蔵のiOSメッセージの束を表示していた。そこで、私はAPPファイルを作成し、パッケージの内容を開いて、en.lproj/Localizable.stringsファイルを見ました...そしてvoila !!!このファイルにはApple iOSのキーと値のペアが入っていました。次のビルドでは、期待通りに満たされました。

もちろん、これはファイルのエンコーディング(UTF-16である必要があります)とは関係ありません。私はこの特定の問題に言及して何かを見つけることができませんでした。

私の解決策:

私は正当な英語のLocalizable.stringsの内容がコンパイルされたときに、.stringsファイルが変換されている(XMLファイルに(ではない私のソースから)APP PACKAGE FROM ファイルコピーXML)と私のプロジェクトに追加されます。私は起動時にこのファイルを辞書にロードし、値の代わりにNSLocalizedStringへの呼び出しによってキーが返された場合は、読み込んだ辞書の参照を行いました。理論的には、すべての言語でこれを行うことができますが、私は英語でしか問題を抱えていませんでした。

はい、問題の解決策ではありませんが、回避策です。

+0

この問題はシミュレータでのみ発生しますか?シミュレータとデバイスの両方で使用できますか? – JAHelia

+0

それは両方で起こっていた。しかし、私は最終的に問題を特定しました。 iOSデータとして登場したのは、実際にはサードパーティ製のライブラリのための十分に隠された英語のローカリゼーションテーブルでした。Xcodeが2つのテーブルの間で交互に表示されるのは私の目の前にあるのですが、それを排除することで問題は解決しました。 – GtotheB

関連する問題