28

ローカリゼーションに関する Ray Wenderlich のチュートリアルの 1 つに従っていましたが、機能していないようです。

プロジェクトを英語とフランス語にローカライズするように設定しました。それぞれに locaziable.strings ファイルがあります。

ここに画像の説明を入力

フランス語のファイルには、正しい (Google 翻訳に関する限り) フランス語版の文字列が含まれています。

ここに画像の説明を入力

localizable.strings ファイルから正しいキーを呼び出して、文字列を設定しています。

 NSString* strTitle = [NSString stringWithFormat:NSLocalizedString(@"Title", Nil)];

そして、シミュレーターをフランス語に設定しています(ところで:言語を変更すると、シミュレーターがクラッシュします)。

しかし、正しい localizable.strings ファイルからプルしていません。それはまだ英語で表示されています:

ここに画像の説明を入力

私は何か間違ったことをしていますか?

4

6 に答える 6

46

xcode 6.1.1 および iOS SDK 8.1 を使用している場合は、この回避策を試してください。

xCode 6.1 および 8.1 シミュレーターではローカライズが機能しないようです。回避策: [スキームの編集] >> [実行] (サイド バー) >> [オプション] タブ >> [アプリケーション言語] に移動し、シミュレーターでアプリを実行する言語を選択します。この回避策は、 natanavraによる回避策から取得 しました。彼のおかげです。

ただし、開発者フォーラムで、Xcode の 6.2 ベータ版で動作していることを読みました。願っています。

于 2015-01-01T11:11:35.017 に答える
24

Localizable.stringsファイルが既に存在しているが、まだローカライズされていない場所でアプリを実行した可能性があります。この場合、このローカライズされていないファイルはシミュレーターのアプリケーション バンドルのリソース フォルダーに残っています (シミュレーターまたはデバイスで新しいバージョンのアプリをビルドして実行しても、未使用のファイルは削除されません)。これにより、問題が発生する可能性があります。

シミュレーターからアプリを完全に削除して、もう一度実行をビルドしてみてください。

于 2013-09-27T20:06:03.687 に答える
13

デバイスで同様の問題 (私の場合は IB ローカリゼーション) が発生しました。したがって、一般的な答えは

デバイス- アプリをアンインストールし、Shift+CMD+K でプロジェクトをクリーンアップします

シミュレーター- iOS シミュレーターに移動 > コンテンツと設定をリセットし、Shift+CMD+K でプロジェクトをクリーンアップします

これらの問題は本当に厄介です。ローカライズされた文字列を更新する能力が低いことに加えて、ローカライズは iOS 開発の最大の欠点の 1 つです。

于 2014-04-09T09:10:16.067 に答える
4

Xcode 6.0 以降では、シミュレーターで言語を変更するとローカリゼーションが機能しません。

アプリケーションを実行する前に、スキームを編集する必要があります。

Edit Scheme -> Run -> Options に移動し、ここで言語を変更します。

次に、アプリケーションを実行します。それが動作します。

詳細については、この回答を確認してください: iOS 8.1 シミュレーターで言語を変更することはできません

于 2015-07-01T06:36:39.190 に答える
1

これに関する私の問題は、ローカリゼーション ファイル内の文字が正しくエンコードされていないことでした。

于 2016-05-05T00:01:52.993 に答える