web-dev-qa-db-ja.com

NSLocationWhenInUseUsageDescription.stringsファイルを使用したローカリゼーションが機能しない

BaseLocalizationを使用してアプリをトルコ語に翻訳しました。ただし、Info.plistファイルのNSLocationWhenInUseUsageDescriptionキーも変換する必要があります。私は他のすべてのためにしたことを正確に行いました:

ファイルインスペクターに行き、トルコ語をチェックしました:

enter image description here

次に、新しい文字列リソースに移動し、このキーをローカリゼーションファイルに追加して翻訳を完了しました。

enter image description here

"NSLocationWhenInUseUsageDescription" = "[my Turkish description of location permissions]";

保存、コンパイル、さらにはデバイスからアプリを削除して再構築しましたが、役に立ちませんでした。私のアプリが場所の許可を要求するとき、下の説明はまだ英語のものです(私はベース翻訳ファイルの下に英語の翻訳も含めようとしましたが、何も変更されませんでした)。

他のすべてはトルコ語で、うまく翻訳されています。変換されないのは、ロケーション権限だけです。 iOS info.plistファイル内の文字列をローカライズする方法は? そして"Localized resources can be mixed" = YESキーを追加しました(もちろん、文字通りその文ではなく、CFBundleAllowMixedLocalizationsとして) )私の元のリストに追加しましたが、それでも何も変わりませんでした。

どうすれば問題を解決できますか?

10
Can Poyrazoğlu

最初からやり直しました。翻訳を削除し、プロジェクトをクリーンアップして、再試行しました。出来た。なぜ最初はそうしなかったのか分かりません。

2
Can Poyrazoğlu

これがXcode 7.1で私のために働いた結果です。

まず、プロジェクトディレクトリに移動し、2つのInfoPlist.stringsファイルを手動で作成します。1つ目はen.lprojフォルダー内に、2つ目はfr.lprojフォルダー内に作成します。

両方のファイルに次の内容が含まれている必要があります。

NSLocationWhenInUseUsageDescription = "YOUR TEXT HERE";

ファイルはXcodeに自動的に表示されないため、両方をプロジェクトバンドルに手動で追加する必要があります。これは、Xcodeでプロジェクト名を右クリックし、Add files to Xオプションを選択して、ファイルを選択することで実現できます。作成したばかりです。


また、結果をテストして動作を確認したい場合は、Application LanguageEdit Scheme > Run > Optionsを変更するだけでは不十分です。

simulatorまたはdevice言語をSettings > General > Language & Region > iPhone Languageで変更する必要があります

20
Zakaria Braksa

私の問題は大文字と小文字が区別されるようです:

ぼくの InfoPlist.stringsはFinderとXcode(infoPlist)で低い「i」を持っていましたが、高い必要があります。

ソースXcodeプロジェクトのファイル名と参照を変更しましたが、機能します(または削除して正しい名前で再作成します)。

0
DonMizzi