Question

Je travaille sur xcode4 et j'ai créé un Settings.bundle pour mon projet. Je peux modifier le Root.plist fichier dans xcode4 mais il n'est pas possible de modifier le Root.strings dossier. Il n'est même pas affiché dans l'éditeur.

enter image description here

Je ne peux pas étendre le en.lproj dossier comme vous le voyez sur l'image.

Mais quand je fais Cliquez avec le bouton droit, ouvert dans l'éditeur externe ça me donne:

enter image description here

Double cliquer sur Root.strings Donne moi:

enter image description here

Je l'ai essayé plusieurs fois, créant un nouveau projet d'application basé sur des fenêtres et créant un nouveau paramètres. Je ne peux toujours pas le localiser. Des idées?

Était-ce utile?

La solution

EDIT: Apple Correction, encore une fois, le mauvais bug. Leur changement a rendu ma solution de contournement inutile. Cela ne fonctionne plus, vous ne pouvez pas ajouter de fichiers à Settings.bundle.

Veuillez vous référer à la réponse de Javi pour une méthode qui semble fonctionner.


J'espère que vous aimez les solutions de contournement laides.

  1. Cliquez avec le bouton droit sur le faisceau des paramètres dans la barre latérale.
  2. Sélectionner New File
  3. Choisissez le fichier de ressources / chaînes
  4. Nommez-le root.strings, assurez-vous qu'il est placé à l'intérieur des paramètres.
  5. Dans la barre latérale, le fichier sera visible deux fois. Dans la section "racine" et dans les paramètres.bundle. Mais les deux indiquent les mêmes fichiers.
  6. Sélectionnez le fichier root.strings dans la section racine. (Afair vous devez le convertir en UTF16)
  7. Ajouter la localisation, Xcode vous demandera si vous souhaitez remplacer le fichier. Oui, vous voulez ça.
  8. Ajoutez autant de localisations que vous le souhaitez. Vous devriez être en mesure de modifier le fichier dans la section racine de la barre latérale.

J'espère que cela fonctionne pour vous, pour moi, c'est le cas.

Et si vous ne l'avez pas fait, veuillez signaler le bug à bugReport.apple.com


Je vais installer la nouvelle version maintenant, voyons si cela est corrigé. EDIT: Non fixe.


Edit: Je ne sais pas si j'ai bien compris votre deuxième question. Mais lorsque vous ajoutez une localisation au fichier qui apparaît en dehors du bundle, il ajoute un dossier de localisation aux paramètres.bundle

enter image description here

Après avoir ajouté la localisation espagnole à Root.strings:

enter image description here

Le fichier réel se trouve dans le dossier foo.lproj, il ne les montre tout simplement pas dans la barre latérale Xcode. Si vous vérifiez l'emplacement dans le système de fichiers, vous verrez qu'ils se trouvent dans le bundle des paramètres.enter image description here

Hier, j'ai vérifié avec un fichier anglais et allemand et cela a fonctionné correctement dans le simulateur. Je suppose que c'est juste une mauvaise mise en page de la barre latérale. Les emplacements sous-jacents et la gestion des fichiers semblent corrects.

Autres conseils

Dans xcode 4.2, vous devez suivre ces étapes (juste une modification de Xcode 3.2.2 et localisation des paramètres.bundle)

  1. Révenez vos paramètres.bundle dans Finder.
  2. Cliquez avec le bouton droit (ou CTRL-CLICK) et sélectionnez Afficher le contenu du package.
  3. Créez un nouveau dossier appelé la langue souhaitée (par exemple, fr.lproj).
  4. Copiez le fichier root.strings dans le dossier en.lproj et collez dans le dossier fr.lproj.

Pour moi, cela a fonctionné pour modifier le type de fichier (dans l'inspecteur de fichiers) du dossier "en.lproj" de "Default / Directory" à "Directory". La magie.

Xcode 4 crée les "root.strings" en tant que liste de propriétés binaires. Donc, ce que je devais faire était de définir le type de fichier sur "la liste des propriétés (binaire)" pour qu'il s'affiche correctement.

Je viens de renoncer à essayer de faire quelque chose avec root.strings. Au lieu de cela, je viens de copier le PLIST dans chaque * .lproj, et cela a fonctionné!

En ce qui concerne la traduction en anglais et ma langue maternelle, pas de problème.

Donc j'ai:

Settings.bundle
|- en.lproj
|  |- Root.plist
|  `- Root.strings -- nothing useful there
|
`- zz.proj
   `- Root.plist

La bonne nouvelle est que root.plist est UTF8.

Si vous avez déjà un fichier root.strings qui est une "liste de propriétés (binaire)" et que vous souhaitez le convertir en un fichier de cordes de texte approprié, vous pouvez utiliser plutil Dans l'application de terminal pour le convertir, par exemple en format JSON:

> plutil -convert json /path/to/Settings.bundle/en.lproj/Root.strings

NB vous pouvez courir plutil -h pour l'aide d'utilisation.

Cependant, vous devrez alors convertir le format JSON:

{"key1":"value1","key2":"value2"}

à celui d'un fichier de cordes:

"key1" = "value1";
"key2" = "value2";

Cela se fait facilement avec quelques opérations de recherche / remplacement dans un éditeur de texte.

Licencié sous: CC-BY-SA avec attribution
Non affilié à StackOverflow
scroll top