アプリケーションのinfo.plistファイル( ここを参照 )で定義されているNSPhotoLibraryUsageDescriptionキーをローカライズしようとしています。
このキーは、アプリが最初にカメラロールへのアクセスを要求するときにカスタムメッセージを提供するためのポイントを提供します。 ALAssetsLibraryを使用してアセットグループを列挙しています(これにより、アクセス要求メッセージがポップアップ表示されます)。
これまでのところ、私のグーグルは私がこれをどのように達成できるかについて答えていません。
Info.plistファイル全体には、ロケールに依存しないコンテンツが多く含まれているため、ローカライズは避けたいと思います。
誰かがすでにこれを解決したか、どのように進めるかについてのヒントがありますか?
InfoPlist.strings
と呼ばれる、作成できるファイル(プロジェクトの作成時に作成される可能性があります)があります。このファイルは、ファイルLocalizable.strings
と同じように使用およびローカライズされます。
その中には、次のようなエントリがあります。
NSPhotoLibraryUsageDescription = "Test of new Photos warnings";
キーの前後に引用符がないことに注意してください
キーがinfo.plist
に含まれている限り、その言語で使用できる場合は、InfoPlist.string
の値を使用してローカライズされると思います。それ以外の場合は、info.plistで定義されているものを使用します。
私はここに私のメモを持っています https://github.com/onmyway133/notes/issues/29 、またはあなたは得るでしょう
Info.plistキーがありません-このアプリは、使用法の説明なしでプライバシーに配慮したデータにアクセスしようとします。アプリのInfo.plistには、アプリがこのデータをどのように使用するかをユーザーに説明する文字列値を持つNSPhotoLibraryUsageDescriptionキーが含まれている必要があります。これらの問題が修正されたら、修正されたバイナリを再配信できます。
確認してください
"NSPhotoLibraryUsageDescription" = "Test of new Photos warnings";
のように二重引用符は必要ありません。NSPhotoLibraryUsageDescription = "Test of new Photos warnings";
を使用できます。私のためにこれを機能させる唯一の方法は、Xcodeで次のことを行うことでした。
1)Project target -> Info-> Localization-> Add localization
に移動します
そこに言語を追加しました。この操作により、<projectName>/<LanguageInitials>.lproj
フォルダーが作成されました。
2)フォルダ<projectName>/<LanguageInitials>.lproj
内にファイルInfoPlist.stringsを作成しました。
3)テキストを追加しました:
NSPhotoLibraryUsageDescription = "<Add your translated text here>";
そのInfoPlist.strings
ファイル内。
4)次に、そのフォルダーをFile -> add new files to the project
を使用してプロジェクトに追加するか、ドラッグアンドドロップします。
注:これをテストするには、次のようにします。
キャッシュをクリーンアップし、シミュレーターの言語を新しい言語に設定し、スキーム内の言語をシミュレーターでの実行時に新しい言語に編集して、シミュレーターを再起動しました。