Contribuer
Comment ce wiki est tenu à jour, ce qui reste en suspens, et la concordance entre les réglages dans le code et dans le wiki.
Principes
- La source de vérité, c’est le code, pas la mémoire : les définitions des réglages dans
App/Shared/Views/Settings/SettingsGuide.swift(SettingsGuide.all) et les textes explicatifs dansApp/Shared/Localizable.xcstrings(settings.info.*,settings.*). Les valeurs par défaut proviennent des fichiers*Preferenceet des clésUserDefaults. Ce qui n’est pas dans le code n’est pas dans le wiki – cela va dans la liste « En suspens ». - État : branche
release-1.0.2(commitda66e128, 15.10.2026), inventaireDocs/release-1.0.2/neu-in-1.0.2.md. Si l’app change, lire d’abord le nouvel état, puis le wiki. - Langue : allemand standard avec l’orthographe suisse (ss au lieu de ß), tutoiement, phrases courtes, aucun terme technique sans explication (voir Glossaire).
- Neutralité : pas de noms de fournisseurs, pas de vrais noms de chaînes (exemples avec des chaînes inventées comme « Nordkanal », « Sportwelt »), pas de prix, aucune affirmation sur la période d’essai ou les conditions d’abonnement, pas d’arguments publicitaires (« sans lag », « meilleur que »). Aucun chiffre tiré du jeu de règles que l’app n’affiche pas elle-même.
- Images uniquement issues du nouveau design :
Docs/release-1.0.2/screens/design-4/etdesign-settings/du code source, copiées avectools/bilder_102.pydansimages/(le script pose aussi les points numérotés sur la télécommande et le lecteur ; la légende figure sur la page). Pas de nouvelles captures d’écran faites à la main.
Structure d’un réglage
Chaque réglage figure exactement une fois, sur la sous-page de sa section, avec une ancre invisible juste sous le titre :
### Nom tel que dans l’app (English name)
<!-- setting: bereich.schlüssel -->
- **Où :** section · plateformes
- **Ce que ça fait :** 2–3 phrases, la phrase explicative de l’app entre « guillemets »
- **Par défaut :** attesté par le code
- **Options :** pour chaque option, avantage et inconvénient
- **Quand modifier :** …
- **Ce que ça coûte :** batterie, retard sur le direct, volume de données, stockage
- **Interagit avec :** renvois
L’ancre <!-- setting: … --> porte la clé tirée de SettingsGuide.swift. La vérification ci-dessous compte ces ancres.
Liens et ancres
Forgejo forme les ancres des titres ainsi : minuscules, chaque suite de caractères qui ne sont ni lettre, ni chiffre, ni trait de soulignement devient un trait d’union, pas de trait d’union au début ni à la fin. Les trémas restent. Exemple : « Reserve gegen Aussetzer (Reserve against dropouts) » → #reserve-gegen-aussetzer-reserve-against-dropouts. Liens de page sans .md, sous la forme [Texte](Seitenname#anker).
Vérifier avant le push
Le dépôt du wiki contient deux scripts dans tools/ :
NEVERLAG_SRC=~/neverlag-wiki-src python3 tools/check_settings.py --table # 81 = 81, aucun doublon
python3 tools/check_links.py # pages, ancres, images
check_settings.py --table régénère la liste de concordance ci-dessous. Les deux doivent passer sans aucune remarque. Ensuite, commit et git push origin main ; le nombre de pages se vérifie via l’API : GET /api/v1/repos/haris/Neverlag/wiki/pages.
Modifier une page
- Mettre la copie des sources à l’état voulu (
git -C ~/neverlag-wiki-src checkout <tag>). - Lire le texte explicatif de l’app (
settings.info.<id>dansLocalizable.xcstrings) et chercher la valeur par défaut dans le code. - Modifier la page ; nom du réglage exactement comme dans l’app, l’anglais entre parenthèses.
- Scripts de vérification, commit avec un message parlant, push.
- Ce qui ne peut pas être attesté : l’inscrire ici sous « En suspens », ne pas deviner.
En suspens
Points que les sources ne permettaient pas d’attester sans ambiguïté, ou sur lesquels les sources se contredisent. Qui les éclaircit inscrit la réponse et raye le point.
- Étendue de la FAQ : la commande cite 27 questions,
Web/src/i18n/faq/de.tsen contient 34. Le wiki reprend les 34. - La 4K revient-elle d’elle-même ? La FAQ du site (« La 4K revient-elle d’elle-même ? », « Pourquoi suis-je soudain en 1080p ? », « … quand mon fournisseur bride le débit ? ») décrit un retour automatique au bout de quelques minutes. Le jeu de règles 1.0.2 dit « jamais de remontée automatique » ; le niveau inférieur vaut au plus 30 minutes par chaîne, la remontée est possible à tout moment par le bouton. Le wiki suit le jeu de règles ; les textes du site seraient à adapter.
- FAQ du site « lecteur le plus stable » cite d’autres lecteurs par leur nom ; le wiki omet ces noms.
- Autoplay : disponible depuis la 1.0.2 (« Épisode suivant automatiquement », Réglages → Lecture). Réglé.
- Langue audio préférée : il n’existe pas de choix fixe (« toujours en allemand »). Depuis la 1.0.2, Neverlag retient la dernière langue audio choisie ; on l’affiche et la réinitialise sous « Langue audio mémorisée » (Réglages → Image et son).
- Reprise des enregistrements : une position enregistrée pour les enregistrements n’est pas attestée dans les textes (seulement pour les films et séries). Pas affirmé.
- Décompte des réglages : dans l’état
release-1.0.2(15.10.2026),SettingsGuide.allcontient 81 entrées réparties en onze sections ; le wiki présente chacune exactement une fois (tableau ci-dessous). Le code fait foi ; les anciens récapitulatifs à 61 ou 64 entrées sont dépassés. - Android / Fire TV : la colonne dans Différences entre plateformes s’appuie sur
Docs/android-parity.md(chaque ligne y est datée), pas sur un essai de l’app. Le contrôle parental, le NAS, l’envoi de jumelage, la notice du premier lancement, Évaluer/Retour et la visite y figurent comme absents ou à rattraper ; les nouveautés de la 1.0.2 (profils, télécommande, chaîne de sources, archives en médiathèque, mots-clés, nouveaux réglages) n’y figurent pas encore du tout. - Mesures sur appareil, image II : selon le rapport, trois décisions restent ouvertes tant qu’aucune mesure n’a été faite sur un vrai iPhone : garder « 120 Hz pour la vidéo », mode standard définitif, valeur par défaut du lissage des mouvements. Le wiki indique les valeurs par défaut actuelles (activé / désactivé).
- Apple TV 4K avec HDR : la FAQ du site cite les pertes d’images en 4K HDR comme limite connue (« nous y travaillons »). Que le « Nouveau moteur de rendu » règle cela dans la 1.0.2 n’est pas attesté comme acquis dans les rapports.
- Plafond de réserve par appareil (85 s sur iPhone et Apple TV 4K, 60 s sur Apple TV HD, 40 s en cas de mémoire limitée) : ces valeurs viennent du rapport du lot 2a ; l’app affiche elle-même la valeur atteignable. À vérifier pour toute nouvelle catégorie d’appareils.
- Images : depuis la 1.0.2, les images proviennent de
Docs/release-1.0.2/screens/design-4/etdesign-settings/(scripttools/bilder_102.py). Pour la configuration initiale « Votre profil », le choix de la langue au premier lancement, le Timeshift sur iPhone/iPad et le test réseau, il n’y a pas de captures à cet endroit ; les pages s’en passent ou montrent l’image la plus proche. - Barre de saut sur Mac : le comportement sur Mac (barre avec début/fin ou simple liste) varie selon la taille de la fenêtre ; le wiki ne le décrit que dans les grandes lignes.
- Prix : volontairement absents du wiki, même là où le site les cite. Le wiki mentionne la période d’essai (7 jours), parce que l’app l’affiche elle-même ainsi.
- Source du wiki : jusqu’ici, le wiki est tenu directement dans le dépôt du wiki. La règle «
Docs/wiki/dans le code source → wiki Forgejo → aide sur le site », avec un script de miroir, reste à mettre en place. - Traductions : depuis le 16 octobre 2026, les pages sous
en/,fr/etit/sont au même niveau que les pages allemandes (1.0.2). Qui modifie une page allemande met à jour les trois langues dans le même commit ; les ancres restent en allemand. - Coupure sans image figée : que Neverlag reprenne au paquet près après une brève coupure de connexion est attesté sur le banc d’essai ; selon le rapport, la mesure sur un vrai appareil reste à faire.
Concordance : réglages dans le code vs. dans le wiki
État release-1.0.2 (15.10.2026) : 81 réglages dans le code, 81 dans le wiki, chacun exactement une fois. Généré avec tools/check_settings.py --table.
| N° | Clé dans le code | Section | Nom dans l’app | Page du wiki | État |
|---|---|---|---|---|---|
| 1 | provider.addXtream | provider | Ajouter un compte Xtream … | Einstellungen-Anbieter | ✓ |
| 2 | provider.addM3U | provider | Ajouter une playlist M3U … | Einstellungen-Anbieter | ✓ |
| 3 | provider.sendQR | provider | Envoyer à l’Apple TV (scanner le code QR) … | Einstellungen-Anbieter | ✓ |
| 4 | provider.refreshInterval | provider | Mise à jour automatique | Einstellungen-Anbieter | ✓ |
| 5 | provider.refreshCatalog | provider | Mettre à jour le catalogue maintenant | Einstellungen-Anbieter | ✓ |
| 6 | provider.refreshEPG | guide | Mettre à jour l’EPG maintenant | Einstellungen-Programmfuehrer | ✓ |
| 7 | provider.loadDetails | provider | Charger les détails des films | Einstellungen-Anbieter | ✓ |
| 8 | provider.manageGroups | provider | Gérer les groupes et recharger … | Einstellungen-Anbieter | ✓ |
| 9 | provider.sendToTV | provider | Envoyer à l’Apple TV … | Einstellungen-Anbieter | ✓ |
| 10 | provider.remove | provider | Supprimer le fournisseur | Einstellungen-Anbieter | ✓ |
| 11 | categories.show | provider | Afficher les catégories | Einstellungen-Anbieter | ✓ |
| 12 | categories.manage | provider | Gérer les catégories | Einstellungen-Anbieter | ✓ |
| 13 | categories.sortAZ | provider | Trier par ordre alphabétique (A–Z) | Einstellungen-Anbieter | ✓ |
| 14 | categories.reset | provider | Réinitialiser | Einstellungen-Anbieter | ✓ |
| 15 | backup.export | provider | Exporter la sauvegarde… | Einstellungen-Anbieter | ✓ |
| 16 | backup.import | provider | Importer une sauvegarde… | Einstellungen-Anbieter | ✓ |
| 17 | tags.manage | guide | Gérer les tags … | Einstellungen-Programmfuehrer | ✓ |
| 18 | epg.assignment | guide | Association EPG … | Einstellungen-Programmfuehrer | ✓ |
| 19 | appearance | general | Apparence | Einstellungen-Allgemein | ✓ |
| 20 | renderer | advanced | Nouveau moteur de rendu | Einstellungen-Erweitert | ✓ |
| 21 | startQuality | pictureSound | Qualité de démarrage préférée | Einstellungen-Bild-und-Ton | ✓ |
| 22 | frameTiming | pictureSound | Cadence d’image | Einstellungen-Bild-und-Ton | ✓ |
| 23 | matchFrameRate | pictureSound | Adapter la fréquence d’image à l’émission | Einstellungen-Bild-und-Ton | ✓ |
| 24 | highRefreshRate | pictureSound | 120 Hz pour la vidéo | Einstellungen-Bild-und-Ton | ✓ |
| 25 | motionSmoothing | pictureSound | Lissage des mouvements | Einstellungen-Bild-und-Ton | ✓ |
| 26 | audioLanguage | pictureSound | Langue audio mémorisée | Einstellungen-Bild-und-Ton | ✓ |
| 27 | timeshift.disk | playback | Timeshift sur le disque | Einstellungen-Wiedergabe | ✓ |
| 28 | timeshift.window | playback | Fenêtre de rembobinage | Einstellungen-Wiedergabe | ✓ |
| 29 | leadHold | playback | Réserve avant la première image | Einstellungen-Wiedergabe | ✓ |
| 30 | reserve | playback | Réserve contre les coupures | Einstellungen-Wiedergabe | ✓ |
| 31 | autoplayNextEpisode | playback | Épisode suivant automatiquement | Einstellungen-Wiedergabe | ✓ |
| 32 | lastChannelOnLaunch | playback | Lire la dernière chaîne au démarrage | Einstellungen-Wiedergabe | ✓ |
| 33 | autoSourceSwitch | playback | Changer de source automatiquement en cas de panne | Einstellungen-Wiedergabe | ✓ |
| 34 | relay | advanced | Lecture via le récepteur local | Einstellungen-Erweitert | ✓ |
| 35 | relay.adaptiveRate | advanced | Adapter la lecture à la connexion | Einstellungen-Erweitert | ✓ |
| 36 | relay.controller | advanced | Le contrôleur décide | Einstellungen-Erweitert | ✓ |
| 37 | recordings.destination | recordings | Destination des enregistrements | Einstellungen-Aufnahmen | ✓ |
| 38 | recordings.chooseFolder | recordings | Choisir un dossier … | Einstellungen-Aufnahmen | ✓ |
| 39 | recordings.defaultFolder | recordings | Utiliser le dossier par défaut | Einstellungen-Aufnahmen | ✓ |
| 40 | recordings.nasSetup | recordings | Configurer le stockage réseau … | Einstellungen-Aufnahmen | ✓ |
| 41 | recordings.nasTransfer | recordings | Envoyer à l’Apple TV … | Einstellungen-Aufnahmen | ✓ |
| 42 | recordings.paddingBefore | recordings | Marge avant | Einstellungen-Aufnahmen | ✓ |
| 43 | recordings.paddingAfter | recordings | Marge après | Einstellungen-Aufnahmen | ✓ |
| 44 | profiles.add | profiles | Ajouter un profil | Einstellungen-Profile | ✓ |
| 45 | profiles.switch | profiles | Changer de profil | Einstellungen-Profile | ✓ |
| 46 | profiles.isChild | profiles | Profil enfant | Einstellungen-Profile | ✓ |
| 47 | profiles.requiresPIN | profiles | Protéger par code PIN | Einstellungen-Profile | ✓ |
| 48 | profiles.allowLive | profiles | Catégories en direct | Einstellungen-Profile | ✓ |
| 49 | profiles.allowVOD | profiles | Catégories de films | Einstellungen-Profile | ✓ |
| 50 | profiles.allowSeries | profiles | Catégories de séries | Einstellungen-Profile | ✓ |
| 51 | profiles.blockChannels | profiles | Chaînes masquées | Einstellungen-Profile | ✓ |
| 52 | profiles.unblockAll | profiles | Afficher à nouveau toutes les chaînes | Einstellungen-Profile | ✓ |
| 53 | profiles.unlockContent | profiles | Déverrouiller les contenus | Einstellungen-Profile | ✓ |
| 54 | profiles.delete | profiles | Supprimer le profil… | Einstellungen-Profile | ✓ |
| 55 | profiles.setPIN | profiles | Définir un code PIN… | Einstellungen-Profile | ✓ |
| 56 | profiles.changePIN | profiles | Modifier le code PIN… | Einstellungen-Profile | ✓ |
| 57 | profiles.removePIN | profiles | Supprimer le code PIN | Einstellungen-Profile | ✓ |
| 58 | profiles.settingsPIN | profiles | Protéger les réglages par code PIN | Einstellungen-Profile | ✓ |
| 59 | profiles.relock | profiles | Verrouiller à nouveau | Einstellungen-Profile | ✓ |
| 60 | subscription.start | subscription | Démarrer l’abonnement | Einstellungen-Abo | ✓ |
| 61 | subscription.manage | subscription | Gérer l’abonnement | Einstellungen-Abo | ✓ |
| 62 | subscription.restore | subscription | Restaurer l’achat | Einstellungen-Abo | ✓ |
| 63 | subscription.terms | about | Conditions d’utilisation | Einstellungen-Ueber | ✓ |
| 64 | diagnostics.overview | advanced | Diagnostic et état | Einstellungen-Erweitert | ✓ |
| 65 | diagnostics.history | advanced | Historique | Einstellungen-Erweitert | ✓ |
| 66 | diagnostics.networkTest | advanced | Test réseau | Einstellungen-Erweitert | ✓ |
| 67 | diagnostics.journalShare | advanced | Partager le journal | Einstellungen-Erweitert | ✓ |
| 68 | diagnostics.journalDelete | advanced | Supprimer le journal | Einstellungen-Erweitert | ✓ |
| 69 | remote.open | remote | Ouvrir la télécommande | Einstellungen-Fernbedienung | ✓ |
| 70 | remote.pair | remote | Jumeler une Apple TV | Einstellungen-Fernbedienung | ✓ |
| 71 | remote.pairTV | remote | Jumeler un iPhone | Einstellungen-Fernbedienung | ✓ |
| 72 | remote.devices | remote | Appareils jumelés | Einstellungen-Fernbedienung | ✓ |
| 73 | language | general | Langue | Einstellungen-Allgemein | ✓ |
| 74 | about.tour | general | Visite de l’app | Einstellungen-Allgemein | ✓ |
| 75 | about.hints | general | Afficher les conseils | Einstellungen-Allgemein | ✓ |
| 76 | about.hintsReset | general | Réinitialiser tous les conseils | Einstellungen-Allgemein | ✓ |
| 77 | about.notice | about | Lecteur, pas fournisseur — la notice | Einstellungen-Ueber | ✓ |
| 78 | about.rate | about | Évaluer Neverlag | Einstellungen-Ueber | ✓ |
| 79 | about.feedback | about | Envoyer un retour | Einstellungen-Ueber | ✓ |
| 80 | about.privacyPolicy | about | Politique de confidentialité | Einstellungen-Ueber | ✓ |
| 81 | about.licenses | about | Licences open source | Einstellungen-Ueber | ✓ |