Lecture du fichier InfoPlist.strings

olofolof Membre
12:48 modifié dans API AppKit #1
'jour !

Est-il possible de lire le contenu du fichier InfoPlist.strings, à  la manière d'un dico ? Je fais une boà®te 'A propos...' perso et j'aimerais y puiser des infos.

J'ai essayé ça, mais ça me renvoie un dico vide :

NSDictionary *vDico = [[NSBundle bundleWithPath:@"InfoPlist.strings"] infoDictionary];



Merci !

Réponses

  • tabliertablier Membre
    12:48 modifié #2
    Le contenu de Info.plist contient certaines propriétés d'un Bundle. N'est-il pas possible d'intéroger le Bundle sur ses propriétés?
    Bien que ce ne soit pas forcément facile, il me semble que Info.plist est un fichier Xml qui s'ouvre avec "Property list editor" qui lui même est intérogeable par applescript (oui oui, un peu compliqué)
    Bon, ce ne sont que des pistes!
  • BruBru Membre
    12:48 modifié #3
    les fichiers du type InfoPlist.strings sont des fichiers XML (d'un format particulier, certes), ils sont donc "parsables" via les méthodes xxxWithContentsOfFile: de NSDictionary :

    <br />{<br />&nbsp; &nbsp; NSString *s=[[NSBundle mainBundle] pathForResource:@&quot;InfoPlist&quot; ofType:@&quot;strings&quot;];<br />&nbsp; &nbsp; NSDictionary *d=[NSDictionary dictionaryWithContentsOfFile:s];<br />}<br />
    


    .
  • LeChatNoirLeChatNoir Membre, Modérateur
    12:48 modifié #4
    ah ben pour une fois que j'allais répondre ! Grilled !
    Ben tant pis  :(
  • olofolof Membre
    12:48 modifié #5
    Une fois de plus, merci beaucoup !
  • elfelf Membre
    12:48 modifié #6
    Heu bru je ne suis pas d'accord: les fichier du type InfoPlist.strings sont des .strings autrement dit des fichier comme ça:

    "X" = "Y";

    et non pas un fichier comme Info.plist qui est du XML

    <plist>
    <dict>
    <key>X</key>
    <string>Y</string>
    </dict>
    </plist>

    et de plus InfoPlist.strings est un fichier et pas un bundle donc [NSBundle bundleWithPath:@InfoPlist.strings] ne peut pas fonctionner.
  • 12:48 modifié #7
    Euh seoxys je suis pas d'accord. Les plists peuvent avoir plusieurs types de formats, celui que tu cites est la variante XML, mais il y a aussi une variante binaire et une variante ASCII, qui est celle dont bru parle.

    Ceci dit, il existe une autre méthode de NSBundle plus pratique qui est:
    [tt]- (id)objectForInfoDictionaryKey:(NSString *)key[/tt].

    Elle renvoie direct la string localisée (en se servant de Info.strings).
Connectez-vous ou Inscrivez-vous pour répondre.