iPhoneのローカリゼーションに問題があり、困惑しています。私は自分のアプリをローカライズしていて、英語だけでなく簡体字中国語と繁体字中国語もうまく機能していました。ローカライズされたLocalizable.stringsとsounds.plistの2つのファイルがあります。両方のファイルの文字列がデバイスとエミュレータに正しく表示されました。
昨日、スペイン語、イタリア語、ドイツ語を追加します。エミュレーターでテストすると、すべてが正しく表示されます。しかし、デバイスにデプロイすると、Localizable.stringsに含まれる文字列は正しく表示されますが、sounds.plistに含まれる文字列は常に英語で表示されます。中国語の文字列でさえ正しく表示されなくなりました。
ビルドをクリーンアップし、翻訳されたテキストをsounds.plistファイルにコピーして戻し、ファイルを削除し、lprojフォルダーを削除し、ローカリゼーションを削除して、最初からやり直してみました。
XCodeにブレークポイントを設定しましたが、このファイルではlocフォルダーが検出されていないようです。sound.plistから文字列をロードするコードは次のとおりです。
+ (NSDictionary*) getSounds
{
NSString *path = [[NSBundle mainBundle] pathForResource:@"sounds" ofType:@"plist"];
NSDictionary *dict = [[NSDictionary alloc] initWithContentsOfFile:path];
return dict;
}
ファイル名がすべて小文字のsounds.plistであることを確認しました。この時点で、私は途方に暮れています。誰かがこのようなことを経験したことがありますか?誰かが修正する方法についての提案がありますか?
ありがとう!
更新:シミュレーターとデバイスで次の行の結果を比較しました:
NSString *path = [[NSBundle mainBundle] pathForResource:@"sounds" ofType:@"plist"];
シミュレーターでは、パスは/Users/Steve/.../de.lproj/sounds.plistとして正しく報告されます。デバイスでは、パスは/ var / mobile/.../sounds.plistとして報告されます。de.lprojがパスにないことに注意してください。そのため、ルートからsounds.plistを読み込んでいます。これは、テキストがローカライズされていない理由を説明しています。ここで私の質問は、コードがローカライズされたフォルダー内のファイルへのパスを取得しないのはなぜですか?