dargone Posté(e) 18 novembre 2009 Share Posté(e) 18 novembre 2009 Bonjour, J'aimerais savoir s'il y a un moyen simple sur android pour faire une application en plusieurs langues ? Par exemple dans un des menu on peut changer la langue passe de FR => EN et inversement Citer Lien vers le commentaire Partager sur d’autres sites More sharing options...
Androc Posté(e) 18 novembre 2009 Share Posté(e) 18 novembre 2009 C'est une question de programmation ? Tu es en train de développer une application et tu souhaiterais connaître le meilleur moyen de proposer un choix de langues ? Citer Lien vers le commentaire Partager sur d’autres sites More sharing options...
feust Posté(e) 18 novembre 2009 Share Posté(e) 18 novembre 2009 (modifié) normallement dragon on peux faire sa,mais j'ai pas vu pour dans un menu http://developer.android.com/guide/topics/resources/resources-i18n.html il y a sa aussi qui peut servir http://developer.android.com/guide/tutorials/localization/index.html la traduction devrai venir mais faut attendre encore un peu Modifié 18 novembre 2009 par feust Citer Lien vers le commentaire Partager sur d’autres sites More sharing options...
dargone Posté(e) 18 novembre 2009 Auteur Share Posté(e) 18 novembre 2009 Merci pour ces réponses Androc: oui je cherche un moyen simple de passe d'une langue à l'autre feust: par menu je voulais dire qu'on arrive dans les paramètres et on peut changer la langue passer de FR => EN. le 2eme lien à l'air d'être intéressant Merci Citer Lien vers le commentaire Partager sur d’autres sites More sharing options...
Profete162 Posté(e) 25 novembre 2009 Share Posté(e) 25 novembre 2009 (modifié) Juste un petit mot pour dire mercià Feust! J'avais aussi besoin de ces renseignements. Je plussoie la question de dargone qui demande comment switcher d'une langue à l'autre via un menu? Car je suppose que la technique utilisant les repertoires values-fr, values-nl, values-en se base sur la langue du telephone.... J'aimerais tant mettre mon appli en francais, anglais, neerlandais sur mon tel qui est en anglais et switcher facilement de l'un à l'autre! PS: oui, je sais c'est tordu! mais je n'ai pas envie de faire une boucle if/else à chacune de mes textviews! Modifié 25 novembre 2009 par Profete162 Citer Lien vers le commentaire Partager sur d’autres sites More sharing options...
feust Posté(e) 25 novembre 2009 Share Posté(e) 25 novembre 2009 je pense que tu dioit pouvoir forcer la localisition juste dans ton appli je look sa et te dit Citer Lien vers le commentaire Partager sur d’autres sites More sharing options...
feust Posté(e) 25 novembre 2009 Share Posté(e) 25 novembre 2009 je pense que le plus simple serai via un menu de choix de forcer une location pour l'activity enfin je c pas trop sinon Citer Lien vers le commentaire Partager sur d’autres sites More sharing options...
Profete162 Posté(e) 25 novembre 2009 Share Posté(e) 25 novembre 2009 (modifié) je pense que le plus simple serai via un menu de choix de forcer une location pour l'activityenfin je c pas trop sinon à mon avis ca pue un peu pour faire ce que l'on a envie... :mad: :mad: :mad: the SDK does not expose methods to let you specify which alternate resource set to load. Android detects the proper set for the hardware and location, and loads them as appropriate. Users can select alternate language settings using the settings panel on the device. Modifié 25 novembre 2009 par Profete162 Citer Lien vers le commentaire Partager sur d’autres sites More sharing options...
popolbx Posté(e) 25 novembre 2009 Share Posté(e) 25 novembre 2009 nan mais c'est super simple. dans ton repertoire values tu a un fichier string.xml tu crée un values-nl pour le néerlandais et hop tu y mets le string.xml dans lequel tu traduit les chaines. idem pour values-en, values-fr, values-it.... bon du coup tu switch pas c est automatique Citer Lien vers le commentaire Partager sur d’autres sites More sharing options...
neoakira Posté(e) 25 novembre 2009 Share Posté(e) 25 novembre 2009 popolbx, sauf qu'ils veulent definir la locale juste pour l'appli a partir du menu, et pas modifier la locale du tel, et ceci ne doit pas être possible... Citer Lien vers le commentaire Partager sur d’autres sites More sharing options...
Profete162 Posté(e) 25 novembre 2009 Share Posté(e) 25 novembre 2009 nan mais c'est super simple.dans ton repertoire values tu a un fichier string.xml tu crée un values-nl pour le néerlandais et hop tu y mets le string.xml dans lequel tu traduit les chaines. idem pour values-en, values-fr, values-it.... Cette partie là, c'était clair et limpide pour tout le mode, je pense! bon du coup tu switch pas c est automatique C'était juste cela qu'on voudrait savoir! Car mon téléphone est en anglais, mais je voudrais que les applis que je developpe ne soient pas forcément en anglais Enfin bon, tout le monde s'accorde à dire que ce n'est pas possible, donc je laisse tomber à moins d'un nouvel avis! Citer Lien vers le commentaire Partager sur d’autres sites More sharing options...
dekans Posté(e) 25 novembre 2009 Share Posté(e) 25 novembre 2009 Au pire le switch entre les langues est rapide sur le téléphone ou dans l'émulateur. Citer Lien vers le commentaire Partager sur d’autres sites More sharing options...
neoakira Posté(e) 25 novembre 2009 Share Posté(e) 25 novembre 2009 rapide ? t'as home qui se relance, le menu qui galere pour rafficher tout les applis installée... Citer Lien vers le commentaire Partager sur d’autres sites More sharing options...
dekans Posté(e) 25 novembre 2009 Share Posté(e) 25 novembre 2009 Ça prend 2 secondes ! Et ya pas vraiment de galère pour rafficher les applis Citer Lien vers le commentaire Partager sur d’autres sites More sharing options...
Profete162 Posté(e) 26 novembre 2009 Share Posté(e) 26 novembre 2009 Autre question: est-il facile de changer de la même maniere des array de 500 strings? Je les ai defini en dur dans le soft: array1={a,b,c,d,...} mais je n'ai pas encore vu que l'on pouvait les mettre dans strings.xml. Des idées? Citer Lien vers le commentaire Partager sur d’autres sites More sharing options...
Profete162 Posté(e) 26 novembre 2009 Share Posté(e) 26 novembre 2009 Bon, si je ne peux pas charger des array de Strings différents suivant la langue, est-il pensable de faire un truc du genre getlangage() sans touchers aux droits de lecture du téléphone et rajouter des permissions? Citer Lien vers le commentaire Partager sur d’autres sites More sharing options...
Alocaly Posté(e) 26 novembre 2009 Share Posté(e) 26 novembre 2009 Autre question: est-il facile de changer de la même maniere des array de 500 strings?Je les ai defini en dur dans le soft: array1={a,b,c,d,...} mais je n'ai pas encore vu que l'on pouvait les mettre dans strings.xml. Des idées? Tu peux pas les sérialiser et les sauver en tant que raw data ( ie dans res/raw ). Dans ce cas, tu dois pouvoir aussi les localiser !! J'avais essayé de le faire pour le dico de mon jeu, mais 300 000 mots string dans un array, ca mettait du temps à se lire :) Mais pour 500 ca ne doit pas poser de problemes... Emmanuel / Alocaly Citer Lien vers le commentaire Partager sur d’autres sites More sharing options...
feust Posté(e) 26 novembre 2009 Share Posté(e) 26 novembre 2009 profete,je suppose que tu a mis avant dans ton code: String a = "coucou"; String b= "lool"; je te conseil donc de faire ainsi,tu prend toute tes variavles,tu les copie et les met dans notepad tu remplace tout(ya la fonction)"String " par et enfin le "; par il ne te reste plus qu'a crée ton fichier XML de cette facon <?xml version="1.0" encoding="utf-8"?> Hallo, Lokalisierung ce que tu a fait plus haut et enfin de recup ta array1 dans le bloc note encore et de remplacer les , par ,@string/ je pense que [color=red][b]sa[/b][/color] va marché je fait un test quand j'ai un peux de temps et jte dit sinon go msn et on tente ensemble sur une wave Citer Lien vers le commentaire Partager sur d’autres sites More sharing options...
Profete162 Posté(e) 27 novembre 2009 Share Posté(e) 27 novembre 2009 Tu peux pas les sérialiser et les sauver en tant que raw data ( ie dans res/raw ). Je ne comprends pas tres bien ce que tu veux dire par "sérialiser" et le raw que je n'ai jamais utilisé... En pratique, comment utiliser: serieA={"one","two","three",....."five hundred"}; serieF={"un","deux","trois",....."cinq cents"}; serieN={"een","twee","drie",....."vijf honderd"}; Citer Lien vers le commentaire Partager sur d’autres sites More sharing options...
Profete162 Posté(e) 27 novembre 2009 Share Posté(e) 27 novembre 2009 (modifié) Solution trouvée avec l'aide de Feust: //values-en one*two*three*....*five hundreds //values-fr un*deux*trois*....*cinq cents et ensuite: on reprend la valeur et on fait un split("*") Cela nous fait donc des tableaux dépendant de la langue. EDIT: en fait, non, ca ne fonctionne pas! RE- EDIT: PUTAIN - une nuit blanche pour se rendre compte que si je parse avec des "," au lieu des étoiles, ca fonctionne... snif snif snif Modifié 27 novembre 2009 par Profete162 Citer Lien vers le commentaire Partager sur d’autres sites More sharing options...
Androc Posté(e) 27 novembre 2009 Share Posté(e) 27 novembre 2009 Par contre je vois au défaut au moins dans ce système. C'est que si tu veux rajouter un mot tu dois le faire à la fin (pas trop grave) mais surtout tes listes doivent être parfaitement synchronisées et tu ne peux pas te permettre de ne pas traduire un mot. Avec une solution basée sur des defines (ou mécanisme équivalent) ou sur un fichier xml avec un node par mot, tu peux te permettre d'avoir une langue très complète et de basculer sur cette langue lorsqu'il y a un mot que tu n'as pas eu le temps de traduire. Citer Lien vers le commentaire Partager sur d’autres sites More sharing options...
feust Posté(e) 27 novembre 2009 Share Posté(e) 27 novembre 2009 Par contre je vois au défaut au moins dans ce système.C'est que si tu veux rajouter un mot tu dois le faire à la fin (pas trop grave) mais surtout tes listes doivent être parfaitement synchronisées et tu ne peux pas te permettre de ne pas traduire un mot. Avec une solution basée sur des defines (ou mécanisme équivalent) ou sur un fichier xml avec un node par mot, tu peux te permettre d'avoir une langue très complète et de basculer sur cette langue lorsqu'il y a un mot que tu n'as pas eu le temps de traduire. pourquoi je comprend pas quand tu parle lol Citer Lien vers le commentaire Partager sur d’autres sites More sharing options...
Androc Posté(e) 27 novembre 2009 Share Posté(e) 27 novembre 2009 pourquoi je comprend pas quand tu parlelol Tu veux vraiment mon opinion ? :) Exemple concret : Selon votre méthode on aurait ça : //values-en one*two*three*....*five hundreds //values-fr un*deux*trois*....*cinq cents Si pour une raison ou une autre tu veux rajouter une langue ou rajouter des messages tu es obligé d'avoir tout traduit dans cette nouvelle langue ou de retoucher à toutes tes chaînes. uno*dos*tres*... Avec une méthode de ce genre : Bonjour Quitter Hello Si tu n'as pas le msgQuit en anglais, ce n'est pas grave tu peux toujours afficher le msgQuit de ta langue par défaut. Tu n'as peut être pas non plus compris cette fois-ci ce que je voulais exprimer mais ce n'est pas grave, faites votre méthode :) Citer Lien vers le commentaire Partager sur d’autres sites More sharing options...
feust Posté(e) 27 novembre 2009 Share Posté(e) 27 novembre 2009 si j'ai compris je l'avai sugerer a profete,mais sa ferai 500 variavles et c'est pas lui qui defini les id,mais bien sont appli Citer Lien vers le commentaire Partager sur d’autres sites More sharing options...
Androc Posté(e) 27 novembre 2009 Share Posté(e) 27 novembre 2009 Pas forcément 500 variables (après tout dépend de ce que tu entends par "variable" et puis surtout je ne sais pas trop comment Android le gère). Tu as un fichier xml de profondeur 1 par langue et tu charges la langue par défaut et celle choisie par le user qui "écrase" les valeurs par défaut. Après dès que tu as besoin d'un texte tu vas chercher le noeud qui va bien et pouf :) Mais bon, si c'est pas lui qui gère ses ID ... même si je ne comprends pas pourquoi il ne pourrait pas le faire, c'est tant pis, il va utiliser la méthode du parsing :) Citer Lien vers le commentaire Partager sur d’autres sites More sharing options...
Recommended Posts
Rejoignez la conversation
Vous pouvez poster maintenant et vous enregistrez plus tard. Si vous avez un compte, connectez-vous maintenant pour poster.