Comment localiser une chaîne à l'intérieur de l'iOS info.fichier plist?
Comme vous le savez peut-être le iOS 8 nécessite NSLocationWhenInUseUsageDescription clé pour l'utilisation de l'emplacement de l'utilisateur. J'ai ajouté cette clé et quelques informations générales dans mon info plist.
Comment puis-je utiliser la traduction de la chaîne à l'intérieur du fichier plist ?
-- Update --
J'ai déjà une chaîne Localizable. Je me demandais simplement ce que je peux utiliser quelque chose comme
NSLocalizedString(MYSTRING,nul), à l'intérieur de la plist chaîne. Je sais que je peux créer plusieurs fichier de l'info.plist pour la localisation, mais je me demandais il y a peut être un moyen plus facile.
- Avez-vous déjà fait cela, j'ai du mal à obtenir NSLocationWhenInUseUsageDescription localisée trop?
Vous devez vous connecter pour publier un commentaire.
Vous devez utiliser
InfoPlist.strings
fichier pour localiser les valeurs deInfo.plist
. Pour ce faire, allez à laFile->New->File
, choisissezStrings File
sousResource
onglet deiOS
, nom ilInfoPlist
et de créer. Ouvrir et insérer leInfo.plist
valeurs que vous souhaitez localiser comme:Maintenant, vous pouvez localiser
InfoPlist.strings
fichier avec des traductions. Bonne Chance!EDIT:
sélectionnez les options de localisation, ou de permettre la localisation, si nécessaire,
vous devriez être en mesure de voir le fichier aussi sur le côté gauche de l'éditeur.
EDIT:
Ici est la documentation officielle pour
Info.plist
clés de la localisation.NSLocationWhenInUseUsageDescription" = "Your text";
ou"CFBundleDisplayName" = "An app name";
InfoPlist.strings
comme la CLÉ de la valeur (sur la gauche) est la CLÉ de cette autorisation, ce qui est TOUJOURS le nom de l'autorisation (par exemple, NSPhotoLibraryAddUsageDescription), et non PAS la valeur que vous donnez à cette info plist.Tous les ci-dessus ne fonctionne pas pour moi (XCode 7.3) j'ai donc lu la Pomme de référence sur la façon de faire, et c'est beaucoup plus simple que celle décrite ci-dessus. Selon Apple:
En conséquence, j'ai créé une chaîne de fichier nommé InfoPlist.les chaînes de et placé dans le xx.lproj dossier de la "xx" de la langue (et de l'ajouter au projet en utilisant Fichier->Ajouter des Fichiers ...). C'est tout. Pas besoin de la clé "ressources Localisées peuvent être mélangés" = OUI, pas besoin de InfoPlist.les chaînes de base.lproj ou fr.lproj.
L'application utilise l'Info.plist clé-valeur comme la valeur par défaut si elle ne peut pas trouver une clé dans la langue de fichier spécifique. Donc, j'ai mis mon anglais de la valeur de l'Info.fichier plist et de la traduction dans la langue de fichier spécifique, testé et tout fonctionne.
En particulier, il n'est pas nécessaire de localiser le InfoPlist.des chaînes de caractères (ce qui crée une version du fichier dans la base.lproj, fr.lroj, et xx.lproj), et dans mon cas, va dans ce sens n'a pas de travail.
Si quelque chose ne fonctionne pas assurez-vous que vous avez ajouté:
"Ressources localisées peuvent être mélangés" = OUI
dans l'info.plist. Dans mon cas, le InfoPlist.les chaînes de fichiers ont été tout simplement ignorés.
Je vous recommande fortement la lecture de Apple guides, et la visualisation de la WWDC ressources indiquées ici:
L'internationalisation et la Localisation des Sujets
Pour répondre spécifiquement à votre question, quand vous ajoutez une nouvelle langue à votre projet, vous avez l'occasion de choisir ce InfoPlist les fichiers à inclure (si vous avez plusieurs cibles, vous aurez de multiples Infos des fichiers plist). Tout ce que vous devez faire pour obtenir l'écran suivant cliquez sur le + en vertu de Localisations et de choisir une nouvelle langue pour ajouter le support.
Une fois que vous avez ajouté, il permettra de créer de la chaîne des fichiers dans la lproj répertoires pour la langue donnée.
--EDIT--
Juste pour être clair, iOS va changer de chaîne pour votre fichier Plist en fonction de l'utilisateur de la langue actuellement sélectionnée à l'aide de la plist entrée de clé comme clé dans les chaînes localisées fichier.
Pour toute personne éprouvant le problème de l'info.plist n'étant pas inclus lorsque vous essayez d'ajouter des localisations, comme dans Xcode 9.
Vous avez besoin de faire de l'info.plist localiazble en allant et en cliquant sur le localiser bouton dans l'inspecteur de fichiers, comme indiqué ci-dessous.
L'info.plist sera ensuite inclus dans le fichier de ressources pour quand vous allez à ajouter de nouvelles Localisations.
Conseils
Rappelez-vous que le Simulateur iOS exploits par défaut de votre système de la langue. S'il vous plaît changer la langue (et la région) dans le Simulateur iOS Réglage trop afin de tester vos traductions.
La localisation de la chaîne (voir Apple docs ici) doit être
et pas (avec citation "...")
Comme RGML dire, vous pouvez créer un InfoPlist.de cordes, de localiser puis d'ajouter votre clé et la valeur comme ceci:
"NSLocationWhenInUseUsageDescription" = "Aide À me retrouver!";
Il va ajouter la clé de votre info.plist pour la langue spécifiée.
Étape par étape de localiser les Informations.plist:
"NSLocationAlwaysAndWhenInUseUsagedescription"="blabla";
"NSLocationAlwaysUsageDescription"="blabla2";
C'est tout ce travail et vous avez de localiser votre info.fichier plist!
Dans mon cas, tout a été mis en place correctement, mais encore la InfoPlist.les chaînes de fichier n'a pas été trouvé.
La seule chose qui a vraiment travaillé a été, à supprimer et ajouter de la InfoPlist.les chaînes de fichiers pour le projet.
Dans mon cas, la localisation n'est pas travaillé cause de symbole '-' dans le nom.
Exemple: "aero-Info.plist"
Et fichiers localisés: "aero-InfoPlist.les chaînes" et "aeroInfoPlist.les chaînes" ne fonctionne pas.