9
votes

NslocaliszeString: Pourquoi les collines ajoutes-elles 1 $ et 2 $ à mes spécificateurs de format?

Je suis localisée de l'application iPad / iPhone à l'aide de CLASSES GENSRINGS / *. M CODE> Pour générer le fichier localisable.strings code>. La plupart des chaînes fonctionnent bien et que je reçois la sortie attendue, mais avec des chaînes Genstrings code> ajoute 1 $ code> ou 1 $ code> au milieu de mon format Spécificateurs, comme ceci:

/* No comment provided by engineer. */
"%@%i" = "%1$@%2$i";

/* No comment provided by engineer. */
"%@: %i" = "%1$@: %2$i";

/* No comment provided by engineer. */
"%@" = "%@";


1 commentaires

Vous pourriez devenir riche! :RÉ


3 Réponses :


15
votes

Ces chiffres font référence à la position de l'argument de la valeur de remplacement. Par exemple, % 2 $ i signifie "remplacer cela par le deuxième argument, qui devrait être un entier." Ceci est utile lors de la localisation en langues qui utilisent des arrangements de mots différents, car les choses peuvent être remplacées dans un ordre différent de celui de l'anglais.

En d'autres termes, ils sont sûrs de partir ou d'enlever, et ils seront utiles à des traductions naturelles vers d'autres langues.


0 commentaires

7
votes

n $ code> Indique le printf code> -Style fonction et méthodes L'ordre strict des champs de votre chaîne de format. De cette façon, lors de la localisation vers une langue où la commande est différente, vous n'avez pas à modifier le code - juste la chaîne de format: xxx pré>

sortie: p>

foo bar
foo bar
bar foo


0 commentaires

3
votes

Vous pouvez éteindre la génération de paramètres de position si vous ne l'aimez pas en passant

-NopipositionneuralParamètres

dans les homosexuelles.


0 commentaires