Traduire une ressource dynamique

muqaddarmuqaddar Administrateur
Je cherche à  savoir si il y a une astuce pour traduire une string provenant d'une DB en utilisant NSLocalizedString.

Exemple :

NSLocalizedString([dict objectForKey:@"toto"], "");


ne traduit pas la string contenue dans la clé toto, même si le contenu de cette string est une clé des fichiers .strings.

Pas d'erreur, mais ça ne fait rien.

Si j'affiche la string directement, pas de soucis :

NSLocalizedString(@"B", "");


J'ai essayé de jongler/bidouiller avec une macro sans succès.
Et j'ai pas trop envie de faire une fonction.  :P

Réponses

  • AliGatorAliGator Membre, Modérateur
    22:07 modifié #2
    NSLocalizedString n'est qu'une macro qui appelle [tt][[NSBundle mainBundle] localizedStringForKey:key value:value table:tableName][/tt] (avec tableName souvent laissé à  nil ce qui va chercher par défaut dans la table "Localizable.strings")

    Donc normalement tel que tu l'utilises il n'y a pas de raison que cela ne marche pas.

    Sauf si [dict objectForKey:@toto] ne retourne pas exactement le même texte que ce que tu as utilisé comme clé dans ton Localizable.strings, par exemple si ça retourne "B\n" au lieu de "B" ou autre caractère invisible qui serait "caché" dans ta valeur stockée dans ton dictionary.

    Essaye un truc comme ça pour vérifier :
    BOOL same = ([[dict objectForKey:@&quot;toto&quot;] isEqualToString:@&quot;B&quot;]);<br />NSLog(@&quot;same ? %@&quot; , same?@&quot;YES&quot;:@&quot;NO&quot;);
    
  • muqaddarmuqaddar Administrateur
    22:07 modifié #3
    Bien vu comme d'habitude !
    J'ai un retour charriot qui traà®nait par là . :)

    Merci grand manitou.
  • AliGatorAliGator Membre, Modérateur
    22:07 modifié #4
    Y'a des fois je me demande comment je fais pour deviner les erreurs des autres sans même avoir leur code sous la main :P Je dois sans doute lire dans le marc de ... cacao :D

    Si seulement avec le bug qui m'énerve sur QT4+GStreamer au taf ça pouvait être pareil :P
  • muqaddarmuqaddar Administrateur
    22:07 modifié #5
    dans 1292960029:

    Y'a des fois je me demande comment je fais pour deviner les erreurs des autres sans même avoir leur code sous la main :P Je dois sans doute lire dans le marc de ... cacao :D


    Ou alors tu as déjà  pu expérimenter le problème ? ;)
  • AliGatorAliGator Membre, Modérateur
    22:07 modifié #6
    Non celui-là  pas spécialement en plus :P
  • DrakenDraken Membre
    22:07 modifié #7
    dans 1292960029:

    Y'a des fois je me demande comment je fais pour deviner les erreurs des autres sans même avoir leur code sous la main :P Je dois sans doute lire dans le marc de ... cacao :D

    Si seulement avec le bug qui m'énerve sur QT4+GStreamer au taf ça pouvait être pareil :P


    T'as pensé au marc de Perrier ?

  • AliGatorAliGator Membre, Modérateur
    22:07 modifié #8
    Pourquoi, tu vois des trucs dedans, toi ? Moi pas :P

    (En même temps, j'ai arrêté, tu devrais faire un tour aux BPCA pour te faire désintox :D)
Connectez-vous ou Inscrivez-vous pour répondre.