fichier "Localizable.strings"

2»

Réponses

  • VeillardVeillard Membre
    22:29 modifié #32
    Tu peux envoyer un exemple de fichier pour voir ce qu'il ne va pas en indiquant la langue correspondante.

    On va y arriver  ;)
  • 22:29 modifié #33
    Bon, je tournerais la question autrement, vu que pour toi:
    - la doc Apple est hermétique;
    - seul l'auteur de Cocoa par la pratique comprend ce qu'il écrit;
    - nos explications ne sont pas claires non plus,
    tu ne comprends toujours pas.

    Je voudrais savoir: qu'est-ce que tu appelles une explication claire?

    Alors plutôt que de répondre à  cette question, je voudrais que tu nous explique clairement un concept de ton choix (genre délégué, notification, mvc,...), pour qu'on voit mieux le style de répondre que tu aimerais avoir.
  • macvelottemacvelotte Membre
    22:29 modifié #34
    Bon, je m'explique :
    voici une partie de code :
    -(void)affichecoordonnees<br />{<br />	int d,m;<br />	double lat,lon;<br />	NSString *coord,*signe;<br />	lat=latitude*180/pi;<br />	d=floor(lat);<br />	m=floor((lat-d)*60);<br />	if( latitude&gt;0)<br />		signe=@&quot;nord&quot;;<br />	else<br />		signe=@&quot;sud&quot;;<br />	id s=[NSString stringWithFormat:@&quot;%i ° %i &#39; %@&quot;,d,m,signe];<br />	[Latitude setStringValue:s];<br />	lon=decalag*180/pi;<br />	if (lon&lt;0)<br />		signe=@&quot;est&quot;;<br />	else<br />		signe=@&quot;ouest&quot;;<br />	if (lon&lt;0)<br />		lon=-lon;<br />	d=floor(lon);<br />	m=floor((lon-d)*60);<br />	id s1=[NSString stringWithFormat:@&quot;%i ° %i &#39; %@&quot;,d,m,signe];<br />	[Longitude setStringValue:s1];	<br />}<br />
    


    Que faire pour que "nord", "sud", etc soient affichés en anglais, sachant que j'ai un Localizable.strings "English" qui est le suivant :
    "nord"="North";
    "sud"="Sud";
    "est"="East";
    "ouest"="West";
    Dans [[NSBundle mainBundle] localizedStringForKey:(key) value:@";" table:nil]
    qu'est-ce que : mainBundle, key, value, table ?
    Je ne trouve nulle part une explication du sens de ces termes.
  • VeillardVeillard Membre
    22:29 modifié #35
    Je mettrais ceci :

    <br />if( latitude&gt;0)<br />&nbsp; &nbsp;  signe=[[NSBundle mainBundle] localizedStringForKey:@&quot;nord&quot; value:@&quot;Nord&quot; table:@&quot;Localizable&quot;];<br />else<br />&nbsp; &nbsp;  signe=[[NSBundle mainBundle] localizedStringForKey:@&quot;sud&quot; value:@&quot;Sud&quot; table:@&quot;Localizable&quot;];<br />
    


    Si on regarde ceci : signe=[[NSBundle mainBundle] localizedStringForKey:@nord value:@Nord table:@Localizable];

    localizedStringForKey:@nord permet de trouver la traduction correspondante grâce à  : "nord"="North";

    value:@Nord affiche la valeur par défaut si la clé n'a pas été trouvée dans ton fichier Localizable, ici, "Nord".

    enfin table:@Localizable correspond au nom du fichier où se trouvent les paires Clés/valeurs.

    Essaie pour voir
  • macvelottemacvelotte Membre
    22:29 modifié #36
    Oui, Favouille, je commence à  comprendre ... et ça marche !

    Mais je viens de relire Cocoa par la pratique : je n'ai pas encore compris ce que j'y ai lu !
  • VeillardVeillard Membre
    22:29 modifié #37
    La technique utilisée est décrite P. 186 en bas.
    L'auteur préconise dans le cas d'applications simples d'utiliser un seul nom de fichier appelé "Localizable.strings" qui sera traduit dans les différentes langues.
    Dans le cas d'applications plus grosses, on peut faire des sous-fichiers (tables) pour chaque thème de l'appli. Dans mon cas, j'ai des fichiers "Carnet.strings", "Main.strings", "Epaves.strings"... Ca évite d'avoir un listing interminable de clés/valeurs.
  • macvelottemacvelotte Membre
    22:29 modifié #38
    Favouille, j'ai des strings qui s'affichent correctement, d'autres qui refusent, ou bien le fait d'ajouter une chaà®ne entraà®ne qu'une seule langue fonctionne (même en la décochant dans le panneau informations).
    J'aurai en tout une douzaine de chaà®nes, ça peut tenir sur une seul fichier !
  • macvelottemacvelotte Membre
    22:29 modifié #39
    Simple oubli du "semi-colon" à  la fin des "strings" en question !!!
  • VeillardVeillard Membre
    22:29 modifié #40
    Oui, je sais que c'est capricieux dès qu'on oublie les semicolon j'en ai aussi fait les frais  :(
  • romaix21romaix21 Membre
    octobre 2009 modifié #41
    Bon je reprend un sujet déjà  existant....

    Voilà  dans un précèdent projet j'ai très bien réussit à  utiliser les fichiers Localizable.

    Mais là ...il ne veut rien savoir, et ne prend pas en compte mes fichiers. J'ai l'impression que cela vient de mon architecture et non pas de la création des fichiers et des appels à  ceux là  :
    Accueil.m est dans le dossier Classes

    @implementation Accueil

    @synthesize boutonJouer;

    - (void) awakeFromNib{

    boutonJouer.titleLabel.text = NSLocalizedString(@jouer,@";");
    }

    et mes fichiers .strings dans Resources.

    /Users/romainmargot/Desktop/Capture d'écran 2009-10-01 à  00.08.30.png

    à  l'écran il m'afficher la Key et non la value, surement parce qu'il n'a pas trouver le fichier...
Connectez-vous ou Inscrivez-vous pour répondre.