私はこれが本当に心を打つ問題を抱えています。
XCodeでLocalizable.stringsファイルを作成し、その中に2つの言語を作成しました。
これらのファイルを言語の翻訳で埋め、ビルド/クリーンを行ってから、新しいビルドを行いましたが、プロジェクトにローカリゼーション文字列が表示される方法はありません。私のようなものを試してみると:
self.title = NSLocalizedString(@"HEAD", nil);
翻訳の代わりに「HEAD」のみがデバイスシミュレータに表示されます。
これは私のプロジェクト階層です:
そして、これは英語のローカライズファイルの内容です。
何か案は?
自分で答えを見つけました。
プロジェクトのクリーニングとビルド、および上記で説明したすべてのこと以外に。 iPhoneシミュレーターでアプリを削除してから、再度ビルドする必要があります!その後、完全に機能します。
Appleをシンプルにすることについて話してください...
以下を確認してください:
いくつかのチェック:
Localizable.strings
であり、ターゲットに含まれていることを確認してください;
で終わります"
で二重引用符で囲まれています//
で始まります(#
ではありません)ビルドフェーズ、バンドルリソースのコピーの下にLocalizable.stringsがあることを確認します。
最初の文字が大文字Localizable.stringsの場合、ファイル名を確認します
@jbssmのソリューションは動作しますが、より良い方法(毎回クリーニングや削除を行わずにリソースを更新し続けることを確認する)は、Localizable.bundleのアクセス時間を変更するカスタムスクリプトビルドフェーズを追加することです。
https://stackoverflow.com/a/19274844/414037 で説明されているように
私は自分自身に1つの答えを見つけました。
すべての値の末尾に;があることを確認してください。それ以外の場合、動作しません。
私の場合、一部のテキストが残っているため、Localizable.stringsファイルは適切にフォーマットされていませんでした。コンパイラは文句を言いませんでしたが、ファイルの不正なセクションの後のすべての文字列は無視されました。私のファイルは次のようになりました。
"Key1" = "String1";
文字列
文字列
文字列
文字列";
"Key2" = "String2";
そのため、適切に処理されていないLocalizable.stringsを必ず手作業で検査してください。コンパイラがすべてのフォーマットエラーをキャッチすることはできません。
また、iPhoneシミュレーターでアプリを削除してから、再度ビルドしてください!その後、完全に機能します。
このスレッドの他の場所で言及されているすべてのヒントに加えて、Localizable.strings
は、特定の場合にプロジェクトのルートフォルダに配置する必要もあります。