Skip to content

PlugArr 0.5.0

Choose a tag to compare

@yannickuhrig1 yannickuhrig1 released this 05 Sep 07:46
· 6 commits to main since this release

PlugArr parle anglais. L'assistant, la ligne de commande, le preflight, le rapport et la page d'acces, avec un menu de langue sur l'ecran d'accueil.

Deux langues, et elles cessent de se confondre

Ou Ce que ca change
Langue de PlugArr ecran d'accueil, ou --lang fr|en l'assistant, la ligne de commande, le rapport, la page d'acces
Langue des services ecran des chemins, ou --langue <code> ce que Sonarr, Radarr, Prowlarr, Jellyfin et Silo afficheront dans leur interface

Le second reglage existait depuis la 0.1.11. Mais il etait seul, donc ambigu : l'ecran annoncait « langue des interfaces » sans dire lesquelles, et rien ne disait que PlugArr, lui, ne parlait que francais.

Sans rien regler, PlugArr suit la langue du systeme : un francophone le trouve en francais, tout le monde d'autre en anglais. Le choix est retenu dans stack.yml, donc plugarr serve et plugarr doctor repondent ensuite dans la langue de l'installation, meme sur un serveur dont la session est en anglais.

Rien n'oblige a garder les deux ensemble : on peut vouloir l'outil en anglais et sa mediatheque en francais.

La cle de traduction est la phrase francaise

Inventer des cles (ecran.accueil.titre) ajoute un dictionnaire a tenir, et une cle mal orthographiee s'affiche telle quelle a l'utilisateur. Ici une phrase absente du catalogue retombe sur le francais, comprehensible au pire.

Et les widgets traduisent au passage plutot que phrase par phrase. Envelopper cent-cinquante appels a la main aurait pose la question a chaque ligne ecrite : la vraie question n'aurait pas ete de savoir si on en oublierait, mais combien. Une phrase oubliee ne casse d'ailleurs rien — elle s'affiche simplement en francais a quelqu'un qui a demande l'anglais, sans erreur ni avertissement.

C'est pour ca que le garde-fou est mecanique. scripts/audit_traductions.py releve les 377 phrases affichables — appels a t(), libelles de widgets, notes du catalogue, sous-titres d'ecran, origines des PUID/PGID — et echoue s'il en manque une ou si le catalogue porte une entree morte. Il tourne en CI, et il a deja attrape une entree posee deux fois.

Un defaut que seul un vrai montage pouvait reveler

Select attend (libelle, valeur) et recevait (valeur, libelle). Le code fr devenait alors illegal, et l'assistant mourait au montage de l'ecran d'accueil. Tous les tests passaient.

Les captures existent dans les deux langues

Le README anglais montrait jusqu'ici des captures francaises, ce qui annulait le travail de traduction pour le seul lecteur a qui il s'adresse. scripts/screenshots.py produit desormais les deux jeux.

Et la console d'administration a enfin une image. C'est la seule partie du produit qu'on garde apres l'installation — on la rouvre pour retrouver un port, un mot de passe, ou pour arreter un service — et elle n'apparaissait nulle part. screenshots.py ne pouvait pas la produire : il exporte des ecrans Textual, elle est du HTML servi par plugarr serve. Elle a maintenant son propre script, avec les memes precautions : secrets d'illustration, adresse de machine fixe, et date figee — celle du jour rendrait le fichier different a chaque execution.

Deux libelles ne se voyaient que la, et sont restes francais jusqu'a ce qu'on regarde : les boutons de chaque service et l'etat en cours de verification.

Ce qui reste en francais

Environ 140 chaines, presque toutes des messages d'erreur : « qBittorrent n'est jamais devenu disponible », « le config.xml pre-seme a peut-etre ete ecrase ». Le chemin nominal est entierement couvert ; ce sont les chemins d'echec qui ne le sont pas encore.


plugarr.exe est attache a cette release, construit et controle par la CI. Aucun changement de configuration : une installation existante garde tout, et lit sa langue depuis son stack.yml.