2010-06-03 11 views
25

J'ai un modèle pour un e-mail que j'ai placé dans un fichier de chaînes localisé et je charge la chaîne avec la macro NSLocalizedString.Chaînes multilignes dans le fichier de chaînes localisées objectives-c

Je préfère ne pas faire de chaque ligne sa propre chaîne avec une clé unique. En Objective-C, je peux créer une chaîne multiligne lisible par l'homme comme ceci:

NSString *email = @"Hello %@,\n" 
    "\n" 
    "Check out %@.\n" 
    "\n" 
    "Sincerely,\n" 
    "\n" 
    "%@"; 

J'ai essayé de le mettre dans un .strings fichier avec:

"email" = "Hello %@,\n" 
    "\n" 
    "Check out %@.\n" 
    "\n" 
    "Sincerely,\n" 
    "\n" 
    "%@"; 

Mais j'obtiens l'erreur suivante à temps de construction:

CFPropertyListCreateFromXMLData(): Old-style plist parser: missing semicolon in dictionary. 
email-template.strings: Unexpected character " at line 1 
Command /Developer/Library/Xcode/Plug-ins/CoreBuildTasks.xcplugin/Contents/Resources/copystrings failed with exit code 1 

Je peux concaténer tous ensemble comme ceci:

"email" = "Hello %@,\n\nCheck out %@.\n\nSincerely,\n\n%@"; 

Mais ce sera un bordel à maintenir, d'autant plus que l'e-mail s'allonge.

Existe-t-il un moyen de le faire dans un fichier de chaînes localisé? J'ai déjà essayé d'ajouter des antislashs à la fin de chaque ligne, en vain.

Répondre

44

Utilisez simplement les nouvelles lignes directement.

"email" = "Hello %@, 

Check out %@. 

Sincerely, 

%@"; 
+0

C'est fait. Merci! –

+1

'\ n' a travaillé pour moi! – byJeevan

+4

Mais alors, les couleurs de l'éditeur de texte ne s'afficheront pas correctement (la chaîne n'est pas complètement dans une couleur) – Daniel