Profete162 Posté(e) 27 novembre 2009 Share Posté(e) 27 novembre 2009 en fait le probleme, c'est que je veux mettre mes 500 noms de ville dans des listviews. Comme une ville change de nom suivant la langue (par exemple bruxelles et brussels), je avoir des tableaux de strings différents par langue. Il est quand même beaucoup plus facile de faire un listevilles.split() que d'aller récupérer 500 strings via une boucle, non? Citer Lien vers le commentaire Partager sur d’autres sites More sharing options...
popolbx Posté(e) 27 novembre 2009 Share Posté(e) 27 novembre 2009 mais heu...les arrays sont gérés dans les strings.xml...... et le split est plus long que la boucle...... dans la bouclle: pour chaque incrément copier la chaine dans un tableau dans le split: parcourir la chaine pour chaque caractère tester le caractère si c est le carac de split aller au prochain carac de plit copier la chaine le split est méchament plus consommateur . 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 mais heu...les arrays sont gérés dans les strings.xml...... Peux-tu developper cette phrase? Ca fait depuis ce matin que je titille Google et le site android developer.... Tu peux le voir avec tous mes messages, je n'arrete pas de chercher et tourner en rond. Citer Lien vers le commentaire Partager sur d’autres sites More sharing options...
popolbx Posté(e) 27 novembre 2009 Share Posté(e) 27 novembre 2009 bah eclispse, string.xml->add : choisir string Array..; test encore 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 Effectivement, j'ai pas été tres malin sur ce coup là... Je me sens ... comment dire.... tout con... Citer Lien vers le commentaire Partager sur d’autres sites More sharing options...
Alocaly Posté(e) 28 novembre 2009 Share Posté(e) 28 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' date=' comment utiliser: serieA={"one","two","three",....."five hundred"}; serieF={"un","deux","trois",....."cinq cents"}; serieN={"een","twee","drie",....."vijf honderd"};[/quote'] Ce que je veux dire, c'est que tu prends ton tableau, tu le sauves en un fichier pour chaque langue ( avec un save/load de ce genre : http://www.vbforums.com/showthread.php?t=308145 ). Tu mets alors ces fichiers dans des répertoires 'raw' localisés : Raw-fr/MyFile Raw-us/MyFle Raw-es/MyFile ... Et tu n'as qu'a charger le fichier 'raw/MyFile' pour charger automagiquement le fichier qui conviendra à la langue de l'utilisateur. Emmanuel / Alocaly Citer Lien vers le commentaire Partager sur d’autres sites More sharing options...
Profete162 Posté(e) 28 novembre 2009 Share Posté(e) 28 novembre 2009 Ca va, la solution de Popol est largement suffisante! Mais ton idée semble à creuser. Citer Lien vers le commentaire Partager sur d’autres sites More sharing options...
dimach Posté(e) 29 novembre 2009 Share Posté(e) 29 novembre 2009 Salut, Il est tout à fait possible de forcer dans l'application le changement de la langue en utilisant directement les strings.xml de la langue que vous voulez. Voici le code que j'utilise dans mon application : //lang est une String du style : "en", "fr", "nl"...le code international de la langue quoi private void setLanguage(String lang) { Locale locale = new Locale(lang); Locale.setDefault(locale); Configuration config = new Configuration(); config.locale = locale; getBaseContext().getResources().updateConfiguration(config, this.getResources().getDisplayMetrics()); } En principe en mettant cela dans l'Activity en question, le string.xml de la langue passé en paramètre sera chargé. Ce code marche pour android 1.5 et pour 1.6. Cependant, j'ai eu des retours comme quoi ça ne fonctionne pas avec android 2.0 (en effet, l'activité se met alors à flasher, à clignoter). Ainsi pour que cette méthode marche avec les différentes versions d'Android, il faut penser à rajouter à chaque activité de l'application (dans le manifest.xml) l'option suivante : android:configChanges="locale" Voila, j'espère que ça sera utile :) Citer Lien vers le commentaire Partager sur d’autres sites More sharing options...
neoakira Posté(e) 29 novembre 2009 Share Posté(e) 29 novembre 2009 tres intéressant dimach, je n'avais pas vu cette option, et ca change bien la langue que dans l'appli et pas la locale du tel ? Citer Lien vers le commentaire Partager sur d’autres sites More sharing options...
dimach Posté(e) 29 novembre 2009 Share Posté(e) 29 novembre 2009 @neoakira : oui cela utilisera le string.xml de la langue choisie sans pour autant affecter la langue du téléphone ou quoi d'autre que ce soit. Couple le tout avec des "preferences" qui stockent la dernière langue sélectionnée et te voila avec une application multilingue ;-) Citer Lien vers le commentaire Partager sur d’autres sites More sharing options...
neoakira Posté(e) 8 décembre 2009 Share Posté(e) 8 décembre 2009 je suis entrain de tester ca dans mon appli mais getBaseContext().getResources().updateConfiguration(config, this.getResources().getDisplayMetrics()); ne fait jamais appel à onConfigurationChanged (Configuration newConfig) que ce soit dans l'activité ou dans l'application du coup je sais pas comment on fait pour mettre à jour les view, et j'ai pas trouver comment "rebooter" une appli... Citer Lien vers le commentaire Partager sur d’autres sites More sharing options...
Profete162 Posté(e) 8 décembre 2009 Share Posté(e) 8 décembre 2009 Est-ce que quelqu'un a déjà commencé à développer une app en chinois? Un mec de chine aimerait m'envoyer mes textes en chinois, mais je ne sais pas si il y a des précautions à prendre dans Eclipse/Motodev ou autre... Merci pour vos retours! Citer Lien vers le commentaire Partager sur d’autres sites More sharing options...
Profete162 Posté(e) 10 décembre 2009 Share Posté(e) 10 décembre 2009 (modifié) J'ai pourtant essayé de faire un repertoire values-cn et tout semble OK, mais quand je lance l'émulateur en chinois, tous mes textes sont dans la langue de base! Values fonctionen tres bien values-fr aussi values-cn ne fonctionne pas, il prend les valeurs par défaut! Alors que tout le système est en chinois!!! Modifié 10 décembre 2009 par Profete162 Citer Lien vers le commentaire Partager sur d’autres sites More sharing options...
dimach Posté(e) 12 décembre 2009 Share Posté(e) 12 décembre 2009 @Profete162 : as-tu essayé à la place un values-zh ? Citer Lien vers le commentaire Partager sur d’autres sites More sharing options...
ADNFX Mobile Posté(e) 17 avril 2010 Share Posté(e) 17 avril 2010 je suis entrain de tester ca dans mon appli mais getBaseContext().getResources().updateConfiguration(config, this.getResources().getDisplayMetrics()); ne fait jamais appel à onConfigurationChanged (Configuration newConfig) que ce soit dans l'activité ou dans l'application du coup je sais pas comment on fait pour mettre à jour les view, et j'ai pas trouver comment "rebooter" une appli... C'est un vieux poste mais j'ai la solution si ça intéresse des gens qui passent par là .... Dans les commentaires : http://www.tutorialforandroid.com/2009/01/force-localize-application-on-android.html private void setLanguage(String lang) { Locale locale = new Locale(lang); Locale.setDefault(locale); Configuration config = new Configuration(); config.locale = locale; getBaseContext().getResources().updateConfiguration(config, this.getResources().getDisplayMetrics()); this.finish(); this.startActivity(getIntent()); } Bon c'est un peu barbare je le reconnais ... mais au moins ça marche.... 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.