David Madore's WebLog: Je change des petites choses sur mon téléphone

Index of all entries / Index de toutes les entréesXML (RSS 1.0) • Recent comments / Commentaires récents

Entry #2151 [older|newer] / Entrée #2151 [précédente|suivante]:

(vendredi)

Je change des petites choses sur mon téléphone

La principale raison pour laquelle je veux avoir sur mon téléphone (ou sur mes ordinateurs) un système d'exploitation relativement ouvert n'est pas tant philosophique, elle est pratique : quand quelque chose ne me plaît pas, si je n'aime pas la manière dont la configuration est faite par défaut, je veux pouvoir changer, au moins en principe, plutôt que rester coincé sur les choix qu'auraient fait M. Google, ou M. Apple ou M. Microsoft ou je ne sais qui. Reste que ce n'est pas forcément facile.

Un exemple concret : je n'ai plus de clavier physique sur mon téléphone, comme je m'en suis déjà suffisamment plaint. J'essaie au moins de faire en sorte que cette disparition soit la moins douloureuse possible. À défaut de clavier physique qui soit un QWERTY, je veux un clavier virtuel (sur écran) qui en soit un. Mais d'un autre côté, je tape essentiellement du français, et ça ne me déplaît pas forcément d'avoir un dictionnaire qui fasse des propositions de complétion et/ou de la correction orthographique, en français. Ou même mieux, bilingue (i.e., qui considère un mot comme correct quand il existe soit en français soit en anglais — comme il m'arrive aussi de taper de l'anglais sur mon téléphone, ce n'est pas inutile). Sous Android (au moins AOSP), par défaut, ce n'est pas possible : si vous voulez taper en français et bénéficier de complétions proposées en français, il faudra supporter d'avoir à l'écran un clavier AZERTY, ce qui est plus que mes nerfs ne peuvent encaisser. Ou alors, on peut choisir un clavier QWERTY « générique » (c'est-à-dire sans langue associée), mais alors les seules complétions qu'il propose sont basées sur les noms des contacts qu'on a ou celles qu'on a manuellement ajoutées — pas complètement inutile mais pas très utile non plus.

J'ai donc voulu me fabriquer une application (méthode d'entrée) Android qui fournisse un clavier QWERTY mais avec dictionnaire combiné français et anglais, et tant qu'à faire ajouter quelques caractères Unicode courants (par exemple le symbole moins, , qui est différent du trait d'union -) à des endroits relativement facilement accessibles.

Au final j'ai réussi, mais disons que ça n'a pas été sans mal. Je pensais naïvement que ce serait facile de prendre l'application clavier standard qui vient avec CyanogenMod/AOSP, la modifier très légèrement et la recompiler, mais il s'avère que cette chose est une horreur à recompiler (elle utilise un package Java com.android.inputmethodcommon qu'il faut aller chercher dans un exemple accompagnant le SDK Android, elle utilise des bouts de code natif, qu'il faut donc recompiler en C++, pour lire plus rapidement les dictionnaires binaires, ceux-ci doivent d'ailleurs être inclus sans compression dans le APK, et il faut encore réussir à compiler un utilitaire Java pour fabriquer un dictionnaire binaire à partir d'une liste de mots en XML, sans compter un autre utilitaire qui sert à fabriquer du code autogénéré). C'est fréquemment le problème avec le logiciel libre : avoir le source est une chose, mais les instructions pour s'en servir (et pour commencer, pour le compiler) manquent souvent cruellement.

Si cela peut servir à quelqu'un, je suis prêt à donner quelques indications sur comment compiler le machin sous Linux, et/ou fournir les sources que j'ai utilisées et/ou le APK compilé. (Je ne veux pas le mettre sur le marchand de jouets Play Store parce que c'est juste une bidouille rapide.)

Un autre exemple : le Firefox mobile (enfin, Fennec) que j'utilise sur mon téléphone permet facilement de faire des recherches Google. Mais ces recherches se font en anglais. Ça me va très bien, l'essentiel des recherches que je fais sur Google sont effectivement en anglais. Mais je veux pouvoir de temps en temps faire des recherches sur Google en français (évidemment, quand on cherche un mot spécifiquement français, la langue de recherche n'a pas grande importance ; mais elle en a quand le terme existe dans les deux langues, et détermine quelle langue sera privilégiée : ceci correspond à ajouter un simple paramètre &hl=fr dans la barre d'adresse, ce qui est malcommode à faire sur un téléphone). Heureusement, Firefox permet d'ajouter un nouveau moteur de recherche. Mais la seule manière de le faire vraiment est de se créer une page web pour distribuer un fichier XML décrivant le moteur de recherche (contrairement à ce que ce lien indique, le fichier en question n'est pas exactement OpenSearch, d'ailleurs, c'est un truc spécifique à Firefox), et encore, je ne sais pas pourquoi, l'icône ne fonctionne pas. Mais bon, si ça peut servir à quelqu'un d'ajouter un moteur de recherche pour Google en français dans Firefox pour Android, il suffit de suivre ce lien.

↑Entry #2151 [older|newer] / ↑Entrée #2151 [précédente|suivante]

Recent entries / Entrées récentesIndex of all entries / Index de toutes les entrées