Comme vous le savez peut-être, iOS 8 nécessite la clé NSLocationWhenInUseUsageDescription pour utiliser l'emplacement de l'utilisateur. J'ai ajouté cette clé et quelques informations générales dans ma liste d'informations.
Comment utiliser la chaîne de traduction dans le fichier plist?
-- Mettre à jour --
J'ai déjà une chaîne localisable. Je me demande simplement si je peux utiliser quelque chose comme NSLocalizedString (MYSTRING, nil) à l'intérieur de la chaîne plist. Je sais que je peux créer plusieurs fichiers info.plist pour la localisation, mais je me demandais s'il pourrait y avoir un moyen plus simple.
Réponses:
Vous devez utiliser le
InfoPlist.strings
fichier pour localiser les valeurs deInfo.plist
. Pour ce faire, accédez àFile->New->File
, choisissezStrings File
sous l'Resource
onglet deiOS
, nommezInfoPlist
-le et créez. Ouvrez et insérez lesInfo.plist
valeurs que vous souhaitez localiser comme:Vous pouvez maintenant localiser le
InfoPlist.strings
fichier avec les traductions. Bonne chance!ÉDITER:
sélectionnez les options de localisation ou activez la localisation si nécessaire,
vous devriez pouvoir voir le fichier également dans l'éditeur de gauche.
ÉDITER:
Voici la documentation officielle pour la
Info.plist
localisation des clés.Remerciements à Marco , merci d'avoir inclus les photos dans cette réponse!
la source
Tout ce qui précède n'a pas fonctionné pour moi (XCode 7.3), j'ai donc lu la référence Apple sur la façon de le faire, et c'est beaucoup plus simple que décrit ci-dessus. Selon Apple:
En conséquence, j'ai créé un fichier de chaîne nommé InfoPlist.strings et l' ai placé dans le dossier xx.lproj de la langue "xx" (et l'ai ajouté au projet en utilisant Fichier-> Ajouter des fichiers à ...). C'est tout. Pas besoin de la clé "Les ressources localisées peuvent être mélangées" = OUI, et pas besoin d'InfoPlist.strings dans base.lproj ou en.lproj.
L'application utilise la valeur-clé Info.plist comme valeur par défaut si elle ne trouve pas de clé dans le fichier spécifique à la langue. Ainsi, j'ai mis ma valeur en anglais dans le fichier Info.plist et la traduction dans le fichier spécifique à la langue, testé et tout fonctionne.
En particulier, il n'est pas nécessaire de localiser InfoPlist.strings (ce qui crée une version du fichier dans base.lproj, en.lroj et xx.lproj), et dans mon cas, cela n'a pas fonctionné dans mon cas.
la source
Si quelque chose ne fonctionne pas, assurez-vous d'avoir ajouté:
"Les ressources localisées peuvent être mélangées" = OUI
dans l'info.plist. Dans mon cas, les fichiers InfoPlist.strings ont été simplement ignorés.
la source
Conseils
N'oubliez pas que le simulateur iOS exploite par défaut la langue de votre système. Veuillez également modifier la langue (et la région) dans les paramètres du simulateur iOS afin de tester vos traductions.
La chaîne de localisation (voir la documentation Apple ici ) doit être
et non (avec la citation "...")
la source
"NSLocationWhenInUseUsageDescription"="description"
est valide). Cela peut être avec ou sans.Je recommande fortement de lire les guides d'Apple et de consulter les ressources de la WWDC répertoriées ici: Sujets d'internationalisation et de localisation
Pour répondre spécifiquement à votre question, lorsque vous ajoutez une nouvelle langue à votre projet , vous avez la possibilité de choisir les fichiers InfoPlist à inclure (si vous avez plusieurs cibles, vous aurez plusieurs fichiers Info plist). Tout ce que vous devez faire pour obtenir l'écran suivant est d'appuyer sur le + sous Localisations et choisissez une nouvelle langue pour ajouter le support.
Une fois que vous avez ajouté, il créera les fichiers de chaîne nécessaires dans les répertoires lproj appropriés pour la langue donnée.
--ÉDITER--
Juste pour être clair, iOS remplacera la chaîne de votre fichier Plist en fonction de la langue actuellement sélectionnée par l'utilisateur en utilisant la clé de l'entrée plist comme clé dans le fichier de chaînes localisé.
la source
Étape par étape, localisez Info.plist:
Save As
champ, écrivez UNIQUEMENT InfoPlist (majuscule "I" et majuscule "P")"NSLocationAlwaysAndWhenInUseUsageDescription" = "blabla";
"NSLocationAlwaysUsageDescription" = "blabla2";
C'est tout le travail et vous avez localisé votre fichier info.plist!
la source
Pour toute personne rencontrant le problème de l'info.plist non inclus lors de la tentative d'ajout de localisations, comme dans Xcode 9.
Vous devez rendre localiazble info.plist en y accédant et en cliquant sur le bouton localiser dans l'inspecteur de fichiers, comme indiqué ci-dessous.
Le fichier info.plist sera alors inclus dans les ressources du fichier lorsque vous allez ajouter de nouvelles localisations.
la source
Comme le dit RGML, vous pouvez créer un InfoPlist.strings, le localiser puis ajouter votre clé et la valeur comme ceci: "NSLocationWhenInUseUsageDescription" = "Aide pour me localiser!";
Il ajoutera la clé à votre info.plist pour la langue spécifiée.
la source
Dans mon cas, tout a été correctement configuré mais le fichier InfoPlist.strings est toujours introuvable.
La seule chose qui a vraiment fonctionné a été de supprimer et d'ajouter à nouveau les fichiers InfoPlist.strings au projet.
la source
Dans mon cas, la localisation n'a pas fonctionné à cause du symbole «-» dans le nom. Exemple: "aero-Info.plist" Et fichiers localisés: "aero-InfoPlist.strings" et "aeroInfoPlist.strings" ne fonctionnaient pas.
la source
Lorsque vous utilisez un
InfoPlist.strings
fichier (dans XCode, il doit être placé à côté duInfo.plist
fichier - l'emplacement réel du fichier peut être n'importe où dans le projet probablement) veillez à utiliser le nom abrégé de la clé pour la traduction.
J'essayais d'utiliser
Privacy - Camera Usage Description
, mais la clé de travail estNSCameraUsageDescription
la source