TL;DR : installez-le si vous apprenez une langue et que vous en avez assez de réviser le vocabulaire de quelqu’un d’autre. Une seule commande, mais changez le fournisseur de traduction juste après, sinon rien ne se traduit.
Lector est un lecteur pour apprenants, sous AGPL-3.0, qui se présente comme une alternative libre à LingQ et Clozemaster. L’idée tient en une phrase : vous importez le texte que vous voulez lire, et c’est lui qui devient la leçon.
Ce qu’on a fait, et ce qu’on a vu
On l’a installé pour de vrai, ce soir, sur une machine ordinaire :
git clone https://github.com/heuwels/lector.git
cd lector
docker compose up -d
L’interface répond sur http://localhost:3400. On a choisi l’allemand, un niveau débutant, dix minutes par jour, et Lector a généré une première leçon : un texte court, chaque mot dans sa pastille, cliquable.
Le lecteur, la bibliothèque et les réglages, capturés sur notre installation (faites défiler pour voir les trois écrans). © geeks.fr
Un clic sur Stadt ouvre le panneau : /ʃtat/, quatre sens numérotés, l’arbre étymologique jusqu’au proto-indo-européen, la phrase d’où vient le mot, et quatre boutons pour dire à quel point vous le connaissez. En haut du panneau, une mention qui compte : « on-device ». La définition ne vient pas d’un service distant.
Ensuite, le mot part dans Anki. La synchronisation passe par un module publié sur AnkiWeb, et elle est annoncée en bêta : à surveiller si vos paquets Anki comptent pour vous.
Le piège, et il est dans le fichier Compose
Au premier essai, le clic sur un mot nous a rendu « Failed to translate word. Check AI provider in settings. » La page des réglages était plus claire encore : le fournisseur ne pouvait pas s’authentifier.
La raison est écrite dans le docker-compose.yml : LLM_PROVIDER vaut anthropic par défaut. Autrement dit, une installation auto-hébergée démarre branchée sur un service cloud, qui exige une clé d’API. Le service Ollama est pourtant livré dans le même fichier, et OPENAI_COMPAT_URL pointe déjà vers lui. Il manque deux choses : basculer le fournisseur, et télécharger un modèle, parce que celui attendu par défaut (llama3.1:8b) n’est pas dans l’image.
Chez nous, ça a donné ceci, avec un modèle léger :
docker exec lector-ollama ollama pull qwen2.5:1.5b
printf 'LLM_PROVIDER=openai\nOPENAI_COMPAT_MODEL=qwen2.5:1.5b\n' > .env
docker compose up -d
Les réglages affichent alors Connected, et les définitions arrivent.
Notre avis
C’est un bon outil, et le geste de départ est le bon : partir du texte qui vous intéresse plutôt que d’une liste de mots choisie par quelqu’un d’autre. Vingt langues sont proposées, dont le latin, le grec de la koinè et l’espéranto, ce qui dit assez le genre de public visé.
Deux réserves, et elles sont honnêtes. L’interface est entièrement en anglais : pour un francophone qui apprend l’allemand, la langue de service est une troisième langue à digérer. Et le défaut sur un fournisseur cloud dans un projet dont l’argument est l’auto-hébergement est un choix qu’on ne comprend pas : le service local est déjà là, à côté, dans le même fichier.
Rien de rédhibitoire. Comptez cinq minutes d’installation, deux commandes de plus que ce qu’annonce le mode d’emploi, et vous avez chez vous ce que LingQ facture au mois. Si vous faites tourner déjà un modèle en local, vous n’aurez même pas à télécharger le vôtre.