BaseLocalizationを使用してアプリをトルコ語に翻訳しました。ただし、Info.plistファイルのNSLocationWhenInUseUsageDescription
キーも変換する必要があります。私は他のすべてのためにしたことを正確に行いました:
ファイルインスペクターに行き、トルコ語をチェックしました:
次に、新しい文字列リソースに移動し、このキーをローカリゼーションファイルに追加して翻訳を完了しました。
"NSLocationWhenInUseUsageDescription" = "[my Turkish description of location permissions]";
保存、コンパイル、さらにはデバイスからアプリを削除して再構築しましたが、役に立ちませんでした。私のアプリが場所の許可を要求するとき、下の説明はまだ英語のものです(私はベース翻訳ファイルの下に英語の翻訳も含めようとしましたが、何も変更されませんでした)。
他のすべてはトルコ語で、うまく翻訳されています。変換されないのは、ロケーション権限だけです。 iOS info.plistファイル内の文字列をローカライズする方法は? そして"Localized resources can be mixed" = YES
キーを追加しました(もちろん、文字通りその文ではなく、CFBundleAllowMixedLocalizations
として) )私の元のリストに追加しましたが、それでも何も変わりませんでした。
どうすれば問題を解決できますか?
最初からやり直しました。翻訳を削除し、プロジェクトをクリーンアップして、再試行しました。出来た。なぜ最初はそうしなかったのか分かりません。
これがXcode 7.1
で私のために働いた結果です。
まず、プロジェクトディレクトリに移動し、2つのInfoPlist.strings
ファイルを手動で作成します。1つ目はen.lproj
フォルダー内に、2つ目はfr.lproj
フォルダー内に作成します。
両方のファイルに次の内容が含まれている必要があります。
NSLocationWhenInUseUsageDescription = "YOUR TEXT HERE";
ファイルはXcodeに自動的に表示されないため、両方をプロジェクトバンドルに手動で追加する必要があります。これは、Xcodeでプロジェクト名を右クリックし、Add files to X
オプションを選択して、ファイルを選択することで実現できます。作成したばかりです。
また、結果をテストして動作を確認したい場合は、Application Language
のEdit Scheme > Run > Options
を変更するだけでは不十分です。
simulatorまたはdevice言語をSettings > General > Language & Region > iPhone Language
で変更する必要があります
私の問題は大文字と小文字が区別されるようです:
ぼくの InfoPlist.strings
はFinderとXcode(infoPlist)で低い「i」を持っていましたが、高い必要があります。
ソースXcodeプロジェクトのファイル名と参照を変更しましたが、機能します(または削除して正しい名前で再作成します)。