IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

Android Discussion :

Récupérer la ressource d'une langue précise


Sujet :

Android

  1. #1
    Membre confirmé
    Profil pro
    Inscrit en
    Juillet 2012
    Messages
    475
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juillet 2012
    Messages : 475
    Points : 586
    Points
    586
    Par défaut Récupérer la ressource d'une langue précise
    Bonjour à tous,

    Pour afficher le menu principal de mon appli, je fais appel à une ressource de Arrays

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    String[] titles = getResources().getStringArray(com.turvy.pocketchemistry.R.array.mainList_array);
    Et pour analyser les comportements utilisateur, j'envoie le titre du menu cliqué à Firebase
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    params.putString( FirebaseAnalytics.Param.ITEM_ID, titles[position]);
    Seulement voila, vu que mon application est utilisable en de nombreuses langues, un clic sur le meme bouton m'enverra différente donnée si on change la Locale de l'appareil. Donc comment faire pour n'envoyer que les données anglaises ou française, indépendamment de la langue choisie ?

    Merci

  2. #2
    Expert confirmé
    Avatar de Hephaistos007
    Profil pro
    Enseignant Chercheur
    Inscrit en
    Décembre 2004
    Messages
    2 493
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations professionnelles :
    Activité : Enseignant Chercheur
    Secteur : Enseignement

    Informations forums :
    Inscription : Décembre 2004
    Messages : 2 493
    Points : 4 166
    Points
    4 166
    Par défaut
    J'ai trouvé cette méthode, à invoquer avant de récupérer ta chaine.

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    Resources getLocalizedResources(Context context, Locale desiredLocale) {
        Configuration conf = context.getResources().getConfiguration();
        conf = new Configuration(conf);
        conf.setLocale(desiredLocale);
        Context localizedContext = context.createConfigurationContext(conf);
        return localizedContext.getResources();
    }
    Il vaut mieux mobiliser son intelligence sur des conneries que mobiliser sa connerie sur des choses intelligentes --- devise SHADOKS

    Kit de survie Android : mon guide pour apprendre à programmer sur Android, mon tutoriel sur les web services et enfin l'outil en ligne pour vous faire gagner du temps - N'oubliez pas de consulter la FAQ Android

  3. #3
    Membre confirmé
    Profil pro
    Inscrit en
    Juillet 2012
    Messages
    475
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juillet 2012
    Messages : 475
    Points : 586
    Points
    586
    Par défaut
    ok, donc c'est comme changer la locale temporairement. Je pensais qu'il y avais un moyen d'aller chercher directement dans le fichier String ou autre que l'on veut

  4. #4
    Expert confirmé
    Avatar de Hephaistos007
    Profil pro
    Enseignant Chercheur
    Inscrit en
    Décembre 2004
    Messages
    2 493
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations professionnelles :
    Activité : Enseignant Chercheur
    Secteur : Enseignement

    Informations forums :
    Inscription : Décembre 2004
    Messages : 2 493
    Points : 4 166
    Points
    4 166
    Par défaut
    Citation Envoyé par Turvy Voir le message
    ok, donc c'est comme changer la locale temporairement. Je pensais qu'il y avais un moyen d'aller chercher directement dans le fichier String ou autre que l'on veut
    Effectivement, pas d'autre choix.
    Il vaut mieux mobiliser son intelligence sur des conneries que mobiliser sa connerie sur des choses intelligentes --- devise SHADOKS

    Kit de survie Android : mon guide pour apprendre à programmer sur Android, mon tutoriel sur les web services et enfin l'outil en ligne pour vous faire gagner du temps - N'oubliez pas de consulter la FAQ Android

  5. #5
    Modérateur
    Avatar de Hizin
    Homme Profil pro
    Développeur mobile
    Inscrit en
    Février 2010
    Messages
    2 180
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 35
    Localisation : France

    Informations professionnelles :
    Activité : Développeur mobile

    Informations forums :
    Inscription : Février 2010
    Messages : 2 180
    Points : 5 072
    Points
    5 072
    Par défaut
    Sinon, tu remontes plutôt des mots-clefs que des labels utilisés.
    Ainsi, tu n'as strictement aucun problème de locale quelconque.
    Si tu n'as pas encore une trop grosse base de retours, je te conseil de rajouter ce niveau d'indirection dans tout les cas.
    C'est Android, PAS Androïd, ou Androïde didiou !
    Le premier est un OS, le second est la mauvaise orthographe du troisième, un mot français désignant un robot à forme humaine.

    Membre du comité contre la phrase "ça marche PAS" en titre et/ou explication de problème.

    N'oubliez pas de consulter les FAQ Android et les cours et tutoriels Android

  6. #6
    Membre confirmé
    Profil pro
    Inscrit en
    Juillet 2012
    Messages
    475
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juillet 2012
    Messages : 475
    Points : 586
    Points
    586
    Par défaut
    Qu'entends tu par "mot-clef" ?

  7. #7
    Modérateur
    Avatar de Hizin
    Homme Profil pro
    Développeur mobile
    Inscrit en
    Février 2010
    Messages
    2 180
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 35
    Localisation : France

    Informations professionnelles :
    Activité : Développeur mobile

    Informations forums :
    Inscription : Février 2010
    Messages : 2 180
    Points : 5 072
    Points
    5 072
    Par défaut
    Mettre une valeur quelconque dans tes ressources, quelque chose comme "first_item_menu_clicked", que tu iras récupérer dans tes ressources au clic sur correspondant. Ca, c'est pour l'exemple.

    En somme, une valeur complètement arbitraire, qui fait un peu d'abstraction et qui te permet de t'affranchir de tout problème de locale en remplissant le boulot que tu désirs (à savoir remonter les hits et vues des utilisateurs).
    C'est Android, PAS Androïd, ou Androïde didiou !
    Le premier est un OS, le second est la mauvaise orthographe du troisième, un mot français désignant un robot à forme humaine.

    Membre du comité contre la phrase "ça marche PAS" en titre et/ou explication de problème.

    N'oubliez pas de consulter les FAQ Android et les cours et tutoriels Android

  8. #8
    Membre confirmé
    Profil pro
    Inscrit en
    Juillet 2012
    Messages
    475
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juillet 2012
    Messages : 475
    Points : 586
    Points
    586
    Par défaut
    OK, je vois ce que tu veux, mais avec mon menu de 10 entrées, ca va me faire un gros switch case pour pas grand chose.

    Je viens de faire une version adaptée de la solution d'Hephaistos007 que j'ai aussi trouvé ailleurs, et ca à l'air de marché.

  9. #9
    Modérateur
    Avatar de Hizin
    Homme Profil pro
    Développeur mobile
    Inscrit en
    Février 2010
    Messages
    2 180
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 35
    Localisation : France

    Informations professionnelles :
    Activité : Développeur mobile

    Informations forums :
    Inscription : Février 2010
    Messages : 2 180
    Points : 5 072
    Points
    5 072
    Par défaut
    Oui, ça te fera un switch (ou une cascade de if) qui sera dans une méthode, au vu de la manière dont tu as sembles avoir organisé ton code.
    Après, tu fais comme tu veux, du moment que ça répond à ton besoin ^^
    Pour le tracking, j'ai pris l'habitude de passer par une indirection et de ne rien corréler à la Locale, pour éviter de coupler des informations qui n'ont, en définitive, pas grand chose à voir ensemble, donc je passe le conseil
    Cool si tu as résolu ton souci ^^
    C'est Android, PAS Androïd, ou Androïde didiou !
    Le premier est un OS, le second est la mauvaise orthographe du troisième, un mot français désignant un robot à forme humaine.

    Membre du comité contre la phrase "ça marche PAS" en titre et/ou explication de problème.

    N'oubliez pas de consulter les FAQ Android et les cours et tutoriels Android

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. Récupérer les données d'une balise précise
    Par Ariania dans le forum Format d'échange (XML, JSON...)
    Réponses: 31
    Dernier message: 22/08/2012, 11h29
  2. [WD16] Récupérer la valeur d'une colonne d'une table d'une ligne précise
    Par elghers_hocine dans le forum WinDev
    Réponses: 16
    Dernier message: 06/05/2011, 18h11
  3. Récupérer le handle d'une fenêtre précise
    Par AMS010 dans le forum Windows
    Réponses: 1
    Dernier message: 04/07/2008, 16h11
  4. Récupérer une valeur précise
    Par philatex dans le forum LabVIEW
    Réponses: 1
    Dernier message: 18/06/2008, 16h20
  5. récupérer une valeur précise
    Par Arzawe dans le forum VBA Access
    Réponses: 4
    Dernier message: 20/03/2008, 15h16

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo