Envoyé par
jack-ft
Bonjour,
je suis relativement débutant en développement android. Je ne demande pas une solution complète, mais juste quelques indications pour me débloquer.
Les ressources de mon application sont disponibles en plusieurs langues.
J'ai donc des répertoires "values" "values-fr" "values-es" etc.
J'ai plusieurs fichiers HTML (à afficher avec un WebView), comme "disclaimer.htm", déclinés en plusieurs langues que je voudrais livrer avec l'apk.
Je voudrais savoir où je dois les placer et comment les lire.
Puis-je le mettre dans un répertoire localizé "values-<langue>/info/disclaimer.htm" ?
Puis-je le mettre dans un répertoire localizé "raw-<langue>/info/disclaimer.htm" ?
Dans chaque cas, comment accéder au contenu?
Merci d'avance
)jack(
Bon, j'ai avancé (grâce à http://developer.android.com/guide/t...resources.html et suivantes).
En gros, il y a 2 méthodes, les ressources et les assets.
1) Ressources
Pour que le fichier soit localizable, il faut le mettre dans res/raw-<langue> (pas dans un sous-répertoire).
On y accède par son resourceId, comme "R.raw.disclaimer":
1 2 3
| InputStream is = getResources().openRawResource(resId);
String htmlText = sts.convertStreamToString(is);
webview.loadData(htmlText, "text/html", "utf-8"); |
J'ai trouvé le "convertStreamToString" sur internet.
ça marche... tant que le fichier ne contient pas de références externes :-(
Il plante avec:
<p><img style="width:100%" src="viewpic.jpg" /></p>
En fait, après divers essais, il semblerait que ce soit surtout la présence du signe pour-cent qui le gêne!
Il ne plante pas, mais n'affiche aucune image avec:
<p><img src="viewpic.jpg" /></p>
Si quelqu'un a une idée pour insérer une image, je suis preneur!
2) Assets
Tout mettre dans res/../assets (je n'ai pas encore essayé).
Inconvénient: la localization n'est pas automatique.
Avantage: on accède à un vrai filesystem.
)jack(
Partager