comment fonctionne NSLocalizedString ?
Bonjour tout le monde
Je suis entrain de passer mon appli en plusieurs langues et je rencontre quelques difficultés :
J'ai un texte qui récupère une valeur de ce style :
J'ai essayé plusieurs méthodes comme :
Où mon "Translate_POMME" correspond au différentes langues bien évidemment.
Mais cela m'affiche selon la valeur :
18 Translate_POMME, 19 Translate_POMME, 20 Translate_POMME ... au lieu de 18 Pommes, 19 Pommes, 20 Pommes...
Quand je fais ça :
Ca fonctionne bien, je pense donc que le problème vient du positionnement de mon NSLocalizedString, mais je ne sais pas où.
Ci quelqu'un à compris mon charabiat et peux m'aider un ptit peu.
Merci d'avance.
Je suis entrain de passer mon appli en plusieurs langues et je rencontre quelques difficultés :
J'ai un texte qui récupère une valeur de ce style :
Montexte.text = [NSString stringWithFormat:@"%.0f Pommes", val];
J'ai essayé plusieurs méthodes comme :
<br />Montexte.text = [NSString stringWithFormat:NSLocalizedString(@"%.0f Translate_POMME", @""), val];<br />
Où mon "Translate_POMME" correspond au différentes langues bien évidemment.
Mais cela m'affiche selon la valeur :
18 Translate_POMME, 19 Translate_POMME, 20 Translate_POMME ... au lieu de 18 Pommes, 19 Pommes, 20 Pommes...
Quand je fais ça :
Montexte.text = NSLocalizedString(@"Translate_POMME", @"");
Ca fonctionne bien, je pense donc que le problème vient du positionnement de mon NSLocalizedString, mais je ne sais pas où.
Ci quelqu'un à compris mon charabiat et peux m'aider un ptit peu.
Merci d'avance.
Connectez-vous ou Inscrivez-vous pour répondre.
Réponses
Il ne faut donc pas mettre de trucs comme "%.0f" dans ce premier paramètre.
Par contre c'est dans la valeur associée à cet identifiant, donc dans tes fichiers ".strings", qu'apparaà®tra, pour la localisation française "%.0f pommes" et dans la localisation anglaise "%.0f apples".
En réalité si tu utilises NSLocalizedStringWithDefaultValue au lieu de juste NSLocalizedString, tu pourras mettre un texte par défaut... et si après tu utilises la commande "genstrings" pour générer tes fichiers ".strings", il va tout seul te rajouter des "$" dans les formats. Ceci te permet d'ailleurs d'inverser dans certaines langues l'ordre des paramètres si cela s'avère nécessaire, car certaines tournures de phrase sont différentes dans diverses langues, exemple :
Dans ton code :
Dans le English.lproj/Localizable.strings (généré par genstrings) :
--> Ton NSLog affichera en anglais : "Paul miss Anne".
Dans le French.lproj/Localizable.strings (généré par genstrings... et modifié par tes soins ensuite) :
--> Ton NSLog affichera en français : "Anne manque à Paul".
Aie Aie, c'est tellement logique pourtant que je n'y ai même pas pensé.
En tout cas merci pour l'explication, qui est comme d'habitude SUPER !