2017-07-18 1 views
0

Je gère une application Android utilisée dans une entreprise pour les agents de vente où la langue par défaut est le néerlandais.Comment spécifier la langue des ressources par défaut dans Android

Toutes les ressources dans mes dossiers de ressources par défaut (valeurs) sont F.E. néerlandais et moi avons des ressources de la région spécifques pour nl-rBE et fr-rBE (F.E. values-nl-rBE et raw-nl-rBE). Dans l'application, vous pouvez changer la région en néerlandais (néerlandais), en flamand (partie néerlandophone de la Belgique) ou en Wallonie (partie francophone de la Belgique).

Programatticaly je changer la configuration locale à l'un de ces: nl_NL nl_BE fr_BE

Pour les nl-rBE ressources il n'y a que des fichiers bruts spécifiques (avec thermies de vente et conditions) et des ressources de chaîne d'adresses qui diffèrent à partir de la valeur par défaut. Cela a fonctionné pendant longtemps, mais tout à coup dans la construction actuelle quelque chose dans Android décide que lorsque je sélectionne nl_NL, il ne retombe pas dans les dossiers de ressources par défaut, mais il utilise plutôt les variantes nl_rBE. Cela semble logique lorsque vos ressources par défaut sont f.e. Anglais que nl_rBE "better" quand il n'y a pas nl_rNL mais ça n'a jamais fonctionné comme ça dans le passé.

Existe-t-il un moyen de spécifier quelque part dans quelle langue/région les ressources par défaut sont donc Android sait que lorsque je sélectionne nl_NL je préfère les valeurs par défaut au lieu de nl_BE?

modifier 18/07/2017: Même quand j'ajoute un dossier values-nl avec certaines ressources spécifié, il à une ressource des solutions de repli de values-nl-rBE lorsque cette ressource est pas spécifiée au lieu de la ressource à partir de la valeur par défaut values créant ainsi un emty values-nl ne fonctionne pas.

Je peux déplacer toutes les ressources par défaut vers valeurs-nl et raw-nl etc. mais je ne veux pas spécifier les ressources anglaises par défaut car elles ne sont pas nécessaires. Pour l'instant je l'ai résolu en définissant les paramètres régionaux à EN_us lorsque vous sélectionnez NL_nl car j'ai vraiment besoin que les valeurs hollandaises soient la solution de repli (également pour le français). Mais il devrait y avoir un moyen de spécifier que les valeurs par défaut ne sont pas EN_us.

Modifier 2017-07-19: Il semble que ce soit un bug ou un changement dans Android 7.0 (sur Samsung Galaxy Tab A (2016) SM-T580) parce que le client n'a pas de problèmes avec la production (sur ma tablette, il prend les mauvaises ressources aussi sur la version de production)

context.getContentResolver().openInputStream(uri) est encore pire: il prend AllWays les mauvaises ressources: il prend AllWays drawable-nl-rBE-nodpi même lorsque les paramètres régionaux est définie sur fr-BE ou un lieu aléatoire qui n'a pas de ressources (cela n'a absolument aucun sens car drawable-fr-rBE-nodpi et drawable-nodpi existent également). Cela se produit également uniquement sur le Samsung avec Android 7.0 et non sur les appareils de production.

Répondre

0

Je recommande simplement de copier le dossier ou de le renommer et de placer un note.txt décrivant ce qui s'est passé. Honnêtement, je ne vois pas pourquoi quelqu'un serait en colère contre ça :)

+0

Que voulez-vous dire exactement? Renommer les valeurs en valeurs-nl? Mais alors mon application n'a pas de ressources par défaut. – Roel

+0

Un autre problème est quand je change 'values' en' values-nl' est que je veux 'values-fr-rBE' pour tomber dans' values-nl' aussi ...Donc, ce dont j'ai vraiment besoin, c'est qu'Android sache que les valeurs sont néerlandaises. – Roel