Email en français dans une application native en anglais
J889
Membre
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.
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.
Connectez-vous ou Inscrivez-vous pour répondre.
Réponses
Si l'appli est en anglais, pourquoi la composition de l'e-mail se ferait-elle en français ?
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).
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.
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.
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 ?
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
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 :-)
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
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 :
et quand en est sur la version anlgaise de la localization du xib :
[
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 :-)
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).
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)