Email en français dans une application native en anglais

Bonjour,



J' ai fait une application qui est en Anglais donc dans plist j' ai mis United Kingdom.

Dans une vue de l' application j' ai mis un bouton pour envoyer un email tout en restant dans l' application, j' utilise la classe UIMessage.

Dans une autre vue j' ai mis un bouton pour envoyer un email mais il faut que les boutons sur l' email soit en français mais les touches annuler et envoyer sont en anglais.

Comment faire pour que boutons annuler et envoyer soient en français ?



Merci d' avance.

Réponses

  • CéroceCéroce Membre, Modérateur
    août 2012 modifié #2
    On ne peut pas.

    Si l'appli est en anglais, pourquoi la composition de l'e-mail se ferait-elle en français ?
  • AliGatorAliGator Membre, Modérateur
    This is very étrange comme demande, to want d'avoir un bout of the application in anglais et another bit en french, don't you pense ?
  • FKDEVFKDEV Membre
    août 2012 modifié #4
    Toute demande est légitime.



    Si tu mettais Français dans plist, cela ferait quoi pour ton application ? (En tous cas tu aurais les UI systèmes dont le message composer en français).



    Sinon, techniquement, je n'en suis pas sur, les specialistes vont confirmer ou pas, mais il y apeut-etre moyen de parcourir l'arbre des vues de message composer pour aller changer les textes des boutons.

    Si c'est possible c'est une solution "sale" car elle risque de casser à  chaque mise à  jour d'iOS.

    Si tu es dans un cadre où tu contrôles la version du système pourquoi pas.



    Il y a aussi la solution de convaincre le client que ce n'est pas si grave d'avoir ces deux boutons en anglais car leur fonction est relativement claire (grâce aux couleurs et aux habitudes des utilisateurs).
  • Hello,



    Je passe outre le fait de balayer l'arbre des vues. Mais as-tu vraiment beaucoup d'UI native iOS dans ton appli ? Parce que dans le cas contraire, le Info.plist en native development language fr pour avoir les boutons en français et dans ton fichier de localization français tu mets tous tes textes en anglais...



    Je ne cherche même pas à  comprendre pourquoi tu as besoin de ça... Dans l'idéal ton appli devrait être complètement dans une langue donnée, mais les clients sont parfois difficiles à  cerner.
  • J889J889 Membre
    Merci pour vos réponse.

    En Fait c' était surtout pour que l' application ne soit pas rejetée par apple parce que dans la partie française il y aura les touches "cancel" et "send" de l' email.

    Mais étant donné que j' ai mis dans plist, application native : United Kingdom par default, je ne pense pas que apple aille voir la version française.
  • J889J889 Membre
    En fait je me suis peut être mal exprimé.





    L' application est sur en anglais donc United Kingdom dans plist.

    Les xib contiennent des textes en anglais mais sur un xib il y a des textes en français dont un bouton qui appelle la classe UIMessage.

    Il faut que les bouton "cancel" et "send" (ceux qui sont sur l' envoi d' email que fait apparaitre la classe UIMessage) soient en français uniquement dans cette partie de l' application.



    Comment faire pour que les boutons "cancel" et "send" soient en français dans le xib qui contient le texte en français ?
  • SwaySway Membre
    A ma connaissance, le seul moyen de faire cela est d'ajouter une localisation en français dans ton app. (générer un fichier localized.strings pour ton app, puis le localiser en fr dans Xcode).



    Cela fera en sorte que tous les éléments UI génériques iOS seront automatiquement localisés en fr.



    A la limite, tu peux laisser le fichier localized.strings (le fr) en anglais, si tu n'as pas besoin que tes propres élements d'UI soient affichés en français.



    Plus d'infos ici:

    https://developer.apple.com/library/ios/#documentation/MacOSX/Conceptual/BPInternational/Articles/StringsFiles.html#//apple_ref/doc/uid/20000005-SW1
  • Merci.

    Je viens de voir un truc tout simple.

    Si on fait une application en français et en anglais simple. On peut faire un fichier xib et cliquer sur le + de la fenêtre à  droite dans l' éditeur pour rendre le xib localizable . Ensuite dans le xib copier (english) on écrit les textes en anglais et l' iphone vient sur le bon xib suivant que la langue de celui est le français ou l' anglais ?

    Il n' y a pas besoin de créer le fichier localization.string car même les UIKit comme UIMessage est dans le language de l' iphone. C' est super :-)

    Moi avant je copier le .h le .m et le xib et je réécrivais tout en anglais et je refaisais les connections. Y avait deux fois les mêmes fichiers.

    En fait y a que lorsqu' on fait des UIAlert ou ce genre de truc qu' il faut créer le fichier localizable.string mais la je dois voir la doc je pense :-)
  • AliGatorAliGator Membre, Modérateur
    Cliquer sur l" +" pour rajouter une localisation revient à  dupliquer le fichier et le mettre dans le ".lproj" correspondant. Si tu localises un XIB par cette méthode, le XIB va être dupliqué autant de fois qu'il y a de localisations. Si tu veux modifier ton interface pour rajouter un bouton, tu devras le faire dans toutes les localisations de ton XIB. Si tu as 5 langues dans ton appli ça commence à  être fastidieux !



    C'est d'ailleurs pour ça que j'ai inventé AutoNibL10n (cf mon github) qui permet de n'avoir qu'un seul XIB qui va être traduit automatiquement à  la volée au runtime. Ca évite de dupliquer les XIB juste pour modifier les textes, et ça fonctionne tout seul sans que tu aies besoin d'IBOutlets vers chaque objet à  traduire non plus.



    Par contre tu me fais peur quand tu dis que tu copiais le .h et .m pour réécrire tout en anglais... le XIB oui je comprend, mais pour le .h et .m je ne vois pas l'intérêt de les dupliquer ! Non seulement ça n'a pas de sens, ça serait l'horreur pour la maintenance, et en plus ça ne marchera pas car les .m sont compilées et sont du code de l'exécutable final et non pas des ressources chargées au runtime, contrairement aux XIBs ou aux images ou au chaà®nes du Localizable.strings
  • En fait je me suis mal exprimé. Dans mon projet (MyProjet) je créais une nouvelle classe (par exemple myProjetViewController_FR).

    J' avais donc un .h un .m et un .xib devant servir à  l' anglais. Ensuite je copier tous les éléments du xib correspondant (1ère version donc anglais) et je les copiais dans myProjetViewController_FR.xib ensuite j' allais dans le .h et le .m et je fais un copier coller de la même façon et après je refaisais toutes les connections :-)

    Pas pratique.



    En fait je mettais un petit drapeau français et un anglais et suivant que l' on clique sur le français on allais sur le myProjetViewController_FR.xib et sur l' anglais on allait sur myProjetViewController.xib (qui contenant la version anglaise). Chacun avait son .h et son .m à  lui.



    Mais je n' ai pas compris un turc.

    Si je fais une localization d' un fichier xib, comment faire pour spécifier que le texte d' un scrollText doit s' afficher avec le texte anglais ou français ?

    Par exemple :



    <br />
    textPresentation.text = @&quot;texte français&quot;;[/color]<br />
    [color=#d82922]<br />
    




    et quand en est sur la version anlgaise de la localization du xib :




    [
    [/color]<br />
    [color=#488186]textPresentation.text = @&quot;english text&quot;;[/color]<br />
    [color=#D82922]<br />
    




    Merci pour le AutoNibL10n. Je vais allé voir de plus prés mais avant je dois comprendre ce qui est écrit plus haut je pense :-)
  • AliGatorAliGator Membre, Modérateur
    septembre 2012 modifié #12
    'J889' a écrit:


    Mais je n' ai pas compris un turc.
    En même temps si tu ne parles pas le turc, c'est normal que tu ne le comprennes pas image/biggrin.png' class='bbc_emoticon' alt=':D' /> (ok, facile)


    'J889' a écrit:
    Si je fais une localization d' un fichier xib, comment faire pour spécifier que le texte d' un scrollText doit s' afficher avec le texte anglais ou français ?


    Bah il suffit, comme expliqué dans un autre sujet très récent sur les forums qui parle aussi de localization ces derniers jours, et comme expliqué dans le Programming Guide cité là -bas dédié à  la traduction des applis (je t'invite à  aller lire tout ça) d'utiliser la macro NSLocalizedString pour ça, qui va aller chercher dans le fichier Localizable.strings adéquat (selon la langue) le texte correspondant à  la clé que tu lui fournis (cf la doc).
    textPresentation.text = NSLocalizedString(@&quot;presentationText&quot;, @&quot;&quot;);<br />
    


    Je t'invite vraiment à  potasser le Programming Guide en question, tout y est expliqué pour correctement traduire ton application et la rendre internationalisée (= qu'elle supporte plusieurs langues automatiquement)
Connectez-vous ou Inscrivez-vous pour répondre.