fix(ui): clarify stop and arrival terminology (#27)Unverified
8835364 parent: 0cc3c0b modified
package-lock.json +6 -6 | @@ -1,12 +1,12 @@ | ||
| 1 | 1 | { |
| 2 | 2 | "name": "lapin-fute", |
| 3 | - "version": "1.0.2", | |
| 3 | + "version": "1.0.3", | |
| 4 | 4 | "lockfileVersion": 3, |
| 5 | 5 | "requires": true, |
| 6 | 6 | "packages": { |
| 7 | 7 | "": { |
| 8 | 8 | "name": "lapin-fute", |
| 9 | - "version": "1.0.2", | |
| 9 | + "version": "1.0.3", | |
| 10 | 10 | "license": "MIT", |
| 11 | 11 | "workspaces": [ |
| 12 | 12 | "packages/*" |
| @@ -57,7 +57,7 @@ | ||
| 57 | 57 | }, |
| 58 | 58 | "packages/catalog": { |
| 59 | 59 | "name": "@lapin-fute/catalog", |
| 60 | - "version": "1.0.2", | |
| 60 | + "version": "1.0.3", | |
| 61 | 61 | "license": "MIT", |
| 62 | 62 | "dependencies": { |
| 63 | 63 | "csv-parse": "7.0.2", |
| @@ -66,17 +66,17 @@ | ||
| 66 | 66 | }, |
| 67 | 67 | "packages/companion": { |
| 68 | 68 | "name": "@lapin-fute/companion", |
| 69 | - "version": "1.0.2", | |
| 69 | + "version": "1.0.3", | |
| 70 | 70 | "license": "MIT" |
| 71 | 71 | }, |
| 72 | 72 | "packages/config-page": { |
| 73 | 73 | "name": "@lapin-fute/config-page", |
| 74 | - "version": "1.0.2", | |
| 74 | + "version": "1.0.3", | |
| 75 | 75 | "license": "MIT" |
| 76 | 76 | }, |
| 77 | 77 | "packages/watch": { |
| 78 | 78 | "name": "lapin-fute-watch", |
| 79 | - "version": "1.0.2", | |
| 79 | + "version": "1.0.3", | |
| 80 | 80 | "license": "MIT" |
| 81 | 81 | } |
| 82 | 82 | } |
| @@ -1,12 +1,12 @@ | |||
| 1 | { | 1 | { |
| 2 | "name": "lapin-fute", | 2 | "name": "lapin-fute", |
| 3 | - "version": "1.0.2", | 3 | + "version": "1.0.3", |
| 4 | "lockfileVersion": 3, | 4 | "lockfileVersion": 3, |
| 5 | "requires": true, | 5 | "requires": true, |
| 6 | "packages": { | 6 | "packages": { |
| 7 | "": { | 7 | "": { |
| 8 | "name": "lapin-fute", | 8 | "name": "lapin-fute", |
| 9 | - "version": "1.0.2", | 9 | + "version": "1.0.3", |
| 10 | "license": "MIT", | 10 | "license": "MIT", |
| 11 | "workspaces": [ | 11 | "workspaces": [ |
| 12 | "packages/*" | 12 | "packages/*" |
| @@ -57,7 +57,7 @@ | |||
| 57 | }, | 57 | }, |
| 58 | "packages/catalog": { | 58 | "packages/catalog": { |
| 59 | "name": "@lapin-fute/catalog", | 59 | "name": "@lapin-fute/catalog", |
| 60 | - "version": "1.0.2", | 60 | + "version": "1.0.3", |
| 61 | "license": "MIT", | 61 | "license": "MIT", |
| 62 | "dependencies": { | 62 | "dependencies": { |
| 63 | "csv-parse": "7.0.2", | 63 | "csv-parse": "7.0.2", |
| @@ -66,17 +66,17 @@ | |||
| 66 | }, | 66 | }, |
| 67 | "packages/companion": { | 67 | "packages/companion": { |
| 68 | "name": "@lapin-fute/companion", | 68 | "name": "@lapin-fute/companion", |
| 69 | - "version": "1.0.2", | 69 | + "version": "1.0.3", |
| 70 | "license": "MIT" | 70 | "license": "MIT" |
| 71 | }, | 71 | }, |
| 72 | "packages/config-page": { | 72 | "packages/config-page": { |
| 73 | "name": "@lapin-fute/config-page", | 73 | "name": "@lapin-fute/config-page", |
| 74 | - "version": "1.0.2", | 74 | + "version": "1.0.3", |
| 75 | "license": "MIT" | 75 | "license": "MIT" |
| 76 | }, | 76 | }, |
| 77 | "packages/watch": { | 77 | "packages/watch": { |
| 78 | "name": "lapin-fute-watch", | 78 | "name": "lapin-fute-watch", |
| 79 | - "version": "1.0.2", | 79 | + "version": "1.0.3", |
| 80 | "license": "MIT" | 80 | "license": "MIT" |
| 81 | } | 81 | } |
| 82 | } | 82 | } |
modified
package.json +1 -1 | @@ -1,6 +1,6 @@ | ||
| 1 | 1 | { |
| 2 | 2 | "name": "lapin-fute", |
| 3 | - "version": "1.0.2", | |
| 3 | + "version": "1.0.3", | |
| 4 | 4 | "license": "MIT", |
| 5 | 5 | "private": true, |
| 6 | 6 | "type": "module", |
| @@ -1,6 +1,6 @@ | |||
| 1 | { | 1 | { |
| 2 | "name": "lapin-fute", | 2 | "name": "lapin-fute", |
| 3 | - "version": "1.0.2", | 3 | + "version": "1.0.3", |
| 4 | "license": "MIT", | 4 | "license": "MIT", |
| 5 | "private": true, | 5 | "private": true, |
| 6 | "type": "module", | 6 | "type": "module", |
modified
packages/catalog/package.json +1 -1 | @@ -1,6 +1,6 @@ | ||
| 1 | 1 | { |
| 2 | 2 | "name": "@lapin-fute/catalog", |
| 3 | - "version": "1.0.2", | |
| 3 | + "version": "1.0.3", | |
| 4 | 4 | "license": "MIT", |
| 5 | 5 | "private": true, |
| 6 | 6 | "type": "module", |
| @@ -1,6 +1,6 @@ | |||
| 1 | { | 1 | { |
| 2 | "name": "@lapin-fute/catalog", | 2 | "name": "@lapin-fute/catalog", |
| 3 | - "version": "1.0.2", | 3 | + "version": "1.0.3", |
| 4 | "license": "MIT", | 4 | "license": "MIT", |
| 5 | "private": true, | 5 | "private": true, |
| 6 | "type": "module", | 6 | "type": "module", |
modified
packages/companion/package.json +1 -1 | @@ -1,6 +1,6 @@ | ||
| 1 | 1 | { |
| 2 | 2 | "name": "@lapin-fute/companion", |
| 3 | - "version": "1.0.2", | |
| 3 | + "version": "1.0.3", | |
| 4 | 4 | "license": "MIT", |
| 5 | 5 | "private": true, |
| 6 | 6 | "type": "commonjs", |
| @@ -1,6 +1,6 @@ | |||
| 1 | { | 1 | { |
| 2 | "name": "@lapin-fute/companion", | 2 | "name": "@lapin-fute/companion", |
| 3 | - "version": "1.0.2", | 3 | + "version": "1.0.3", |
| 4 | "license": "MIT", | 4 | "license": "MIT", |
| 5 | "private": true, | 5 | "private": true, |
| 6 | "type": "commonjs", | 6 | "type": "commonjs", |
modified
packages/companion/src/display-copy.json +16 -16 | @@ -56,13 +56,13 @@ | ||
| 56 | 56 | }, |
| 57 | 57 | { |
| 58 | 58 | "token": "noDepartures", |
| 59 | - "en": "No departures planned", | |
| 60 | - "fr": "Aucun départ prévu" | |
| 59 | + "en": "No arrivals planned", | |
| 60 | + "fr": "Aucun passage prévu" | |
| 61 | 61 | }, |
| 62 | 62 | { |
| 63 | 63 | "token": "departed", |
| 64 | - "en": "Departed", | |
| 65 | - "fr": "Parti" | |
| 64 | + "en": "Arrived", | |
| 65 | + "fr": "Arrivé" | |
| 66 | 66 | }, |
| 67 | 67 | { |
| 68 | 68 | "token": "now", |
| @@ -71,13 +71,13 @@ | ||
| 71 | 71 | }, |
| 72 | 72 | { |
| 73 | 73 | "token": "departureDelayed", |
| 74 | - "en": "Departure delayed", | |
| 75 | - "fr": "Départ retardé" | |
| 74 | + "en": "Arrival delayed", | |
| 75 | + "fr": "Passage retardé" | |
| 76 | 76 | }, |
| 77 | 77 | { |
| 78 | 78 | "token": "departureCancelled", |
| 79 | - "en": "Departure cancelled", | |
| 80 | - "fr": "Départ annulé" | |
| 79 | + "en": "Arrival cancelled", | |
| 80 | + "fr": "Passage annulé" | |
| 81 | 81 | }, |
| 82 | 82 | { |
| 83 | 83 | "token": "departureUnknown", |
| @@ -121,7 +121,7 @@ | ||
| 121 | 121 | }, |
| 122 | 122 | { |
| 123 | 123 | "token": "trafficUnknownMessage", |
| 124 | - "en": "The current line status cannot be confirmed. Departure times remain separate.", | |
| 124 | + "en": "The current line status cannot be confirmed. Arrival times remain separate.", | |
| 125 | 125 | "fr": "Impossible de confirmer l'état actuel de la ligne. Les horaires restent affichés séparément." |
| 126 | 126 | }, |
| 127 | 127 | { |
| @@ -146,8 +146,8 @@ | ||
| 146 | 146 | }, |
| 147 | 147 | { |
| 148 | 148 | "token": "loadingBody", |
| 149 | - "en": "First load of favorites and their next departures.", | |
| 150 | - "fr": "Premier chargement des favoris et de leurs prochains départs." | |
| 149 | + "en": "First load of favorites and their next arrivals.", | |
| 150 | + "fr": "Premier chargement des favoris et de leurs prochains passages." | |
| 151 | 151 | }, |
| 152 | 152 | { |
| 153 | 153 | "token": "backExit", |
| @@ -201,8 +201,8 @@ | ||
| 201 | 201 | }, |
| 202 | 202 | { |
| 203 | 203 | "token": "departuresUnavailableTitle", |
| 204 | - "en": "Departures unavailable", | |
| 205 | - "fr": "Départs indisponibles" | |
| 204 | + "en": "Arrivals unavailable", | |
| 205 | + "fr": "Passages indisponibles" | |
| 206 | 206 | }, |
| 207 | 207 | { |
| 208 | 208 | "token": "departuresUnavailableBody", |
| @@ -211,7 +211,7 @@ | ||
| 211 | 211 | }, |
| 212 | 212 | { |
| 213 | 213 | "token": "noCachedDataTitle", |
| 214 | - "en": "No cached departures", | |
| 214 | + "en": "No cached arrivals", | |
| 215 | 215 | "fr": "Aucune donnée en mémoire" |
| 216 | 216 | }, |
| 217 | 217 | { |
| @@ -226,8 +226,8 @@ | ||
| 226 | 226 | }, |
| 227 | 227 | { |
| 228 | 228 | "token": "backDepartures", |
| 229 | - "en": "Back: departures.", | |
| 230 | - "fr": "Retour : prochains départs." | |
| 229 | + "en": "Back: arrivals.", | |
| 230 | + "fr": "Retour : prochains passages." | |
| 231 | 231 | }, |
| 232 | 232 | { |
| 233 | 233 | "token": "retry", |
| @@ -56,13 +56,13 @@ | |||
| 56 | }, | 56 | }, |
| 57 | { | 57 | { |
| 58 | "token": "noDepartures", | 58 | "token": "noDepartures", |
| 59 | - "en": "No departures planned", | 59 | + "en": "No arrivals planned", |
| 60 | - "fr": "Aucun départ prévu" | 60 | + "fr": "Aucun passage prévu" |
| 61 | }, | 61 | }, |
| 62 | { | 62 | { |
| 63 | "token": "departed", | 63 | "token": "departed", |
| 64 | - "en": "Departed", | 64 | + "en": "Arrived", |
| 65 | - "fr": "Parti" | 65 | + "fr": "Arrivé" |
| 66 | }, | 66 | }, |
| 67 | { | 67 | { |
| 68 | "token": "now", | 68 | "token": "now", |
| @@ -71,13 +71,13 @@ | |||
| 71 | }, | 71 | }, |
| 72 | { | 72 | { |
| 73 | "token": "departureDelayed", | 73 | "token": "departureDelayed", |
| 74 | - "en": "Departure delayed", | 74 | + "en": "Arrival delayed", |
| 75 | - "fr": "Départ retardé" | 75 | + "fr": "Passage retardé" |
| 76 | }, | 76 | }, |
| 77 | { | 77 | { |
| 78 | "token": "departureCancelled", | 78 | "token": "departureCancelled", |
| 79 | - "en": "Departure cancelled", | 79 | + "en": "Arrival cancelled", |
| 80 | - "fr": "Départ annulé" | 80 | + "fr": "Passage annulé" |
| 81 | }, | 81 | }, |
| 82 | { | 82 | { |
| 83 | "token": "departureUnknown", | 83 | "token": "departureUnknown", |
| @@ -121,7 +121,7 @@ | |||
| 121 | }, | 121 | }, |
| 122 | { | 122 | { |
| 123 | "token": "trafficUnknownMessage", | 123 | "token": "trafficUnknownMessage", |
| 124 | - "en": "The current line status cannot be confirmed. Departure times remain separate.", | 124 | + "en": "The current line status cannot be confirmed. Arrival times remain separate.", |
| 125 | "fr": "Impossible de confirmer l'état actuel de la ligne. Les horaires restent affichés séparément." | 125 | "fr": "Impossible de confirmer l'état actuel de la ligne. Les horaires restent affichés séparément." |
| 126 | }, | 126 | }, |
| 127 | { | 127 | { |
| @@ -146,8 +146,8 @@ | |||
| 146 | }, | 146 | }, |
| 147 | { | 147 | { |
| 148 | "token": "loadingBody", | 148 | "token": "loadingBody", |
| 149 | - "en": "First load of favorites and their next departures.", | 149 | + "en": "First load of favorites and their next arrivals.", |
| 150 | - "fr": "Premier chargement des favoris et de leurs prochains départs." | 150 | + "fr": "Premier chargement des favoris et de leurs prochains passages." |
| 151 | }, | 151 | }, |
| 152 | { | 152 | { |
| 153 | "token": "backExit", | 153 | "token": "backExit", |
| @@ -201,8 +201,8 @@ | |||
| 201 | }, | 201 | }, |
| 202 | { | 202 | { |
| 203 | "token": "departuresUnavailableTitle", | 203 | "token": "departuresUnavailableTitle", |
| 204 | - "en": "Departures unavailable", | 204 | + "en": "Arrivals unavailable", |
| 205 | - "fr": "Départs indisponibles" | 205 | + "fr": "Passages indisponibles" |
| 206 | }, | 206 | }, |
| 207 | { | 207 | { |
| 208 | "token": "departuresUnavailableBody", | 208 | "token": "departuresUnavailableBody", |
| @@ -211,7 +211,7 @@ | |||
| 211 | }, | 211 | }, |
| 212 | { | 212 | { |
| 213 | "token": "noCachedDataTitle", | 213 | "token": "noCachedDataTitle", |
| 214 | - "en": "No cached departures", | 214 | + "en": "No cached arrivals", |
| 215 | "fr": "Aucune donnée en mémoire" | 215 | "fr": "Aucune donnée en mémoire" |
| 216 | }, | 216 | }, |
| 217 | { | 217 | { |
| @@ -226,8 +226,8 @@ | |||
| 226 | }, | 226 | }, |
| 227 | { | 227 | { |
| 228 | "token": "backDepartures", | 228 | "token": "backDepartures", |
| 229 | - "en": "Back: departures.", | 229 | + "en": "Back: arrivals.", |
| 230 | - "fr": "Retour : prochains départs." | 230 | + "fr": "Retour : prochains passages." |
| 231 | }, | 231 | }, |
| 232 | { | 232 | { |
| 233 | "token": "retry", | 233 | "token": "retry", |
modified
packages/config-page/index.html +5 -5 | @@ -62,7 +62,7 @@ | ||
| 62 | 62 | <svg viewBox="0 0 24 24" fill="none" focusable="false"><path d="m12 3 2.8 5.7 6.2.9-4.5 4.4 1.1 6.2-5.6-3-5.6 3 1.1-6.2L3 9.6l6.2-.9L12 3Z"></path></svg> |
| 63 | 63 | </span> |
| 64 | 64 | <span class="summary-copy"> |
| 65 | - <h2 id="favorites-title">Favorite departures</h2> | |
| 65 | + <h2 id="favorites-title">Favorite stops</h2> | |
| 66 | 66 | <span class="favorite-capacity" id="favorites-count" aria-live="polite"></span> |
| 67 | 67 | </span> |
| 68 | 68 | <span class="disclosure" aria-hidden="true"></span> |
| @@ -146,7 +146,7 @@ | ||
| 146 | 146 | </div> |
| 147 | 147 | |
| 148 | 148 | <div id="about-en" lang="en"> |
| 149 | - <p class="about-version">Version 1.0.2</p> | |
| 149 | + <p class="about-version">Version 1.0.3</p> | |
| 150 | 150 | <h3>Publisher and contact</h3> |
| 151 | 151 | <p><strong>Author and publisher:</strong> Anthodev, a private individual acting on a non-professional basis.</p> |
| 152 | 152 | <p><strong>Publication director:</strong> Anthodev.</p> |
| @@ -161,14 +161,14 @@ | ||
| 161 | 161 | <p>bunny.net hosts this page and its static catalog. BunnyWay may process connection data and requested URLs under its <a href="https://bunny.net/privacy/" target="_blank" rel="noopener noreferrer">Privacy & Data Policy</a>.</p> |
| 162 | 162 | <h3>Data and credits</h3> |
| 163 | 163 | <p>Transport line names and colors come from the Île-de-France Mobilités <a href="https://data.iledefrance-mobilites.fr/explore/dataset/referentiel-des-lignes/" target="_blank" rel="noopener noreferrer">Référentiel des lignes</a> database, licensed under <a href="https://opendatacommons.org/licenses/odbl/1-0/" target="_blank" rel="noopener noreferrer">ODbL 1.0</a>. Official line pictograms are © Île-de-France Mobilités and are reused subject to the <a href="https://prim.iledefrance-mobilites.fr/fr/conditions-utilisation" target="_blank" rel="noopener noreferrer">IDFM/PRIM terms of use</a>.</p> |
| 164 | - <p>Real-time departures come from the Île-de-France Mobilités <a href="https://prim.iledefrance-mobilites.fr/" target="_blank" rel="noopener noreferrer">PRIM platform</a> using your personal key and remain subject to the terms and licences published by PRIM.</p> | |
| 164 | + <p>Real-time arrivals come from the Île-de-France Mobilités <a href="https://prim.iledefrance-mobilites.fr/" target="_blank" rel="noopener noreferrer">PRIM platform</a> using your personal key and remain subject to the terms and licences published by PRIM.</p> | |
| 165 | 165 | <h3>Independence and source</h3> |
| 166 | 166 | <p>Lapin Futé is an independent personal project. It is not affiliated with, endorsed by or sponsored by Île-de-France Mobilités, PRIM, ILICO, Pebble or their respective owners. Cited names and trademarks belong to their owners.</p> |
| 167 | 167 | <p>Source code: <a href="https://github.com/Anthodev/lapin-fute" target="_blank" rel="noopener noreferrer">github.com/Anthodev/lapin-fute</a>.</p> |
| 168 | 168 | </div> |
| 169 | 169 | |
| 170 | 170 | <div id="about-fr" lang="fr" hidden> |
| 171 | - <p class="about-version">Version 1.0.2</p> | |
| 171 | + <p class="about-version">Version 1.0.3</p> | |
| 172 | 172 | <h3>Édition et contact</h3> |
| 173 | 173 | <p><strong>Auteur et éditeur :</strong> Anthodev, personne physique agissant à titre privé et non professionnel.</p> |
| 174 | 174 | <p><strong>Directeur de la publication :</strong> Anthodev.</p> |
| @@ -183,7 +183,7 @@ | ||
| 183 | 183 | <p>Cette page et son catalogue statique sont hébergés par bunny.net. BunnyWay peut traiter les données de connexion et les URL demandées selon sa <a href="https://bunny.net/privacy/" target="_blank" rel="noopener noreferrer">politique de confidentialité et de traitement des données</a>.</p> |
| 184 | 184 | <h3>Données et crédits</h3> |
| 185 | 185 | <p>Les noms et couleurs des lignes proviennent de la base <a href="https://data.iledefrance-mobilites.fr/explore/dataset/referentiel-des-lignes/" target="_blank" rel="noopener noreferrer">Référentiel des lignes</a> d’Île-de-France Mobilités, sous licence <a href="https://opendatacommons.org/licenses/odbl/1-0/" target="_blank" rel="noopener noreferrer">ODbL 1.0</a>. Les pictogrammes officiels des lignes sont © Île-de-France Mobilités et réutilisés selon les <a href="https://prim.iledefrance-mobilites.fr/fr/conditions-utilisation" target="_blank" rel="noopener noreferrer">conditions d’utilisation IDFM/PRIM</a>.</p> |
| 186 | - <p>Les départs en temps réel proviennent de la plateforme <a href="https://prim.iledefrance-mobilites.fr/" target="_blank" rel="noopener noreferrer">PRIM</a> d’Île-de-France Mobilités au moyen de votre clé personnelle. Ils restent soumis aux conditions et licences publiées par PRIM.</p> | |
| 186 | + <p>Les passages en temps réel proviennent de la plateforme <a href="https://prim.iledefrance-mobilites.fr/" target="_blank" rel="noopener noreferrer">PRIM</a> d’Île-de-France Mobilités au moyen de votre clé personnelle. Ils restent soumis aux conditions et licences publiées par PRIM.</p> | |
| 187 | 187 | <h3>Indépendance et code source</h3> |
| 188 | 188 | <p>Lapin Futé est un projet personnel indépendant, sans affiliation, approbation ni parrainage d’Île-de-France Mobilités, de PRIM, d’ILICO, de Pebble ou de leurs ayants droit. Les noms et marques cités appartiennent à leurs titulaires.</p> |
| 189 | 189 | <p>Code source : <a href="https://github.com/Anthodev/lapin-fute" target="_blank" rel="noopener noreferrer">github.com/Anthodev/lapin-fute</a>.</p> |
| @@ -62,7 +62,7 @@ | |||
| 62 | <svg viewBox="0 0 24 24" fill="none" focusable="false"><path d="m12 3 2.8 5.7 6.2.9-4.5 4.4 1.1 6.2-5.6-3-5.6 3 1.1-6.2L3 9.6l6.2-.9L12 3Z"></path></svg> | 62 | <svg viewBox="0 0 24 24" fill="none" focusable="false"><path d="m12 3 2.8 5.7 6.2.9-4.5 4.4 1.1 6.2-5.6-3-5.6 3 1.1-6.2L3 9.6l6.2-.9L12 3Z"></path></svg> |
| 63 | </span> | 63 | </span> |
| 64 | <span class="summary-copy"> | 64 | <span class="summary-copy"> |
| 65 | - <h2 id="favorites-title">Favorite departures</h2> | 65 | + <h2 id="favorites-title">Favorite stops</h2> |
| 66 | <span class="favorite-capacity" id="favorites-count" aria-live="polite"></span> | 66 | <span class="favorite-capacity" id="favorites-count" aria-live="polite"></span> |
| 67 | </span> | 67 | </span> |
| 68 | <span class="disclosure" aria-hidden="true"></span> | 68 | <span class="disclosure" aria-hidden="true"></span> |
| @@ -146,7 +146,7 @@ | |||
| 146 | </div> | 146 | </div> |
| 147 | 147 | ||
| 148 | <div id="about-en" lang="en"> | 148 | <div id="about-en" lang="en"> |
| 149 | - <p class="about-version">Version 1.0.2</p> | 149 | + <p class="about-version">Version 1.0.3</p> |
| 150 | <h3>Publisher and contact</h3> | 150 | <h3>Publisher and contact</h3> |
| 151 | <p><strong>Author and publisher:</strong> Anthodev, a private individual acting on a non-professional basis.</p> | 151 | <p><strong>Author and publisher:</strong> Anthodev, a private individual acting on a non-professional basis.</p> |
| 152 | <p><strong>Publication director:</strong> Anthodev.</p> | 152 | <p><strong>Publication director:</strong> Anthodev.</p> |
| @@ -161,14 +161,14 @@ | |||
| 161 | <p>bunny.net hosts this page and its static catalog. BunnyWay may process connection data and requested URLs under its <a href="https://bunny.net/privacy/" target="_blank" rel="noopener noreferrer">Privacy & Data Policy</a>.</p> | 161 | <p>bunny.net hosts this page and its static catalog. BunnyWay may process connection data and requested URLs under its <a href="https://bunny.net/privacy/" target="_blank" rel="noopener noreferrer">Privacy & Data Policy</a>.</p> |
| 162 | <h3>Data and credits</h3> | 162 | <h3>Data and credits</h3> |
| 163 | <p>Transport line names and colors come from the Île-de-France Mobilités <a href="https://data.iledefrance-mobilites.fr/explore/dataset/referentiel-des-lignes/" target="_blank" rel="noopener noreferrer">Référentiel des lignes</a> database, licensed under <a href="https://opendatacommons.org/licenses/odbl/1-0/" target="_blank" rel="noopener noreferrer">ODbL 1.0</a>. Official line pictograms are © Île-de-France Mobilités and are reused subject to the <a href="https://prim.iledefrance-mobilites.fr/fr/conditions-utilisation" target="_blank" rel="noopener noreferrer">IDFM/PRIM terms of use</a>.</p> | 163 | <p>Transport line names and colors come from the Île-de-France Mobilités <a href="https://data.iledefrance-mobilites.fr/explore/dataset/referentiel-des-lignes/" target="_blank" rel="noopener noreferrer">Référentiel des lignes</a> database, licensed under <a href="https://opendatacommons.org/licenses/odbl/1-0/" target="_blank" rel="noopener noreferrer">ODbL 1.0</a>. Official line pictograms are © Île-de-France Mobilités and are reused subject to the <a href="https://prim.iledefrance-mobilites.fr/fr/conditions-utilisation" target="_blank" rel="noopener noreferrer">IDFM/PRIM terms of use</a>.</p> |
| 164 | - <p>Real-time departures come from the Île-de-France Mobilités <a href="https://prim.iledefrance-mobilites.fr/" target="_blank" rel="noopener noreferrer">PRIM platform</a> using your personal key and remain subject to the terms and licences published by PRIM.</p> | 164 | + <p>Real-time arrivals come from the Île-de-France Mobilités <a href="https://prim.iledefrance-mobilites.fr/" target="_blank" rel="noopener noreferrer">PRIM platform</a> using your personal key and remain subject to the terms and licences published by PRIM.</p> |
| 165 | <h3>Independence and source</h3> | 165 | <h3>Independence and source</h3> |
| 166 | <p>Lapin Futé is an independent personal project. It is not affiliated with, endorsed by or sponsored by Île-de-France Mobilités, PRIM, ILICO, Pebble or their respective owners. Cited names and trademarks belong to their owners.</p> | 166 | <p>Lapin Futé is an independent personal project. It is not affiliated with, endorsed by or sponsored by Île-de-France Mobilités, PRIM, ILICO, Pebble or their respective owners. Cited names and trademarks belong to their owners.</p> |
| 167 | <p>Source code: <a href="https://github.com/Anthodev/lapin-fute" target="_blank" rel="noopener noreferrer">github.com/Anthodev/lapin-fute</a>.</p> | 167 | <p>Source code: <a href="https://github.com/Anthodev/lapin-fute" target="_blank" rel="noopener noreferrer">github.com/Anthodev/lapin-fute</a>.</p> |
| 168 | </div> | 168 | </div> |
| 169 | 169 | ||
| 170 | <div id="about-fr" lang="fr" hidden> | 170 | <div id="about-fr" lang="fr" hidden> |
| 171 | - <p class="about-version">Version 1.0.2</p> | 171 | + <p class="about-version">Version 1.0.3</p> |
| 172 | <h3>Édition et contact</h3> | 172 | <h3>Édition et contact</h3> |
| 173 | <p><strong>Auteur et éditeur :</strong> Anthodev, personne physique agissant à titre privé et non professionnel.</p> | 173 | <p><strong>Auteur et éditeur :</strong> Anthodev, personne physique agissant à titre privé et non professionnel.</p> |
| 174 | <p><strong>Directeur de la publication :</strong> Anthodev.</p> | 174 | <p><strong>Directeur de la publication :</strong> Anthodev.</p> |
| @@ -183,7 +183,7 @@ | |||
| 183 | <p>Cette page et son catalogue statique sont hébergés par bunny.net. BunnyWay peut traiter les données de connexion et les URL demandées selon sa <a href="https://bunny.net/privacy/" target="_blank" rel="noopener noreferrer">politique de confidentialité et de traitement des données</a>.</p> | 183 | <p>Cette page et son catalogue statique sont hébergés par bunny.net. BunnyWay peut traiter les données de connexion et les URL demandées selon sa <a href="https://bunny.net/privacy/" target="_blank" rel="noopener noreferrer">politique de confidentialité et de traitement des données</a>.</p> |
| 184 | <h3>Données et crédits</h3> | 184 | <h3>Données et crédits</h3> |
| 185 | <p>Les noms et couleurs des lignes proviennent de la base <a href="https://data.iledefrance-mobilites.fr/explore/dataset/referentiel-des-lignes/" target="_blank" rel="noopener noreferrer">Référentiel des lignes</a> d’Île-de-France Mobilités, sous licence <a href="https://opendatacommons.org/licenses/odbl/1-0/" target="_blank" rel="noopener noreferrer">ODbL 1.0</a>. Les pictogrammes officiels des lignes sont © Île-de-France Mobilités et réutilisés selon les <a href="https://prim.iledefrance-mobilites.fr/fr/conditions-utilisation" target="_blank" rel="noopener noreferrer">conditions d’utilisation IDFM/PRIM</a>.</p> | 185 | <p>Les noms et couleurs des lignes proviennent de la base <a href="https://data.iledefrance-mobilites.fr/explore/dataset/referentiel-des-lignes/" target="_blank" rel="noopener noreferrer">Référentiel des lignes</a> d’Île-de-France Mobilités, sous licence <a href="https://opendatacommons.org/licenses/odbl/1-0/" target="_blank" rel="noopener noreferrer">ODbL 1.0</a>. Les pictogrammes officiels des lignes sont © Île-de-France Mobilités et réutilisés selon les <a href="https://prim.iledefrance-mobilites.fr/fr/conditions-utilisation" target="_blank" rel="noopener noreferrer">conditions d’utilisation IDFM/PRIM</a>.</p> |
| 186 | - <p>Les départs en temps réel proviennent de la plateforme <a href="https://prim.iledefrance-mobilites.fr/" target="_blank" rel="noopener noreferrer">PRIM</a> d’Île-de-France Mobilités au moyen de votre clé personnelle. Ils restent soumis aux conditions et licences publiées par PRIM.</p> | 186 | + <p>Les passages en temps réel proviennent de la plateforme <a href="https://prim.iledefrance-mobilites.fr/" target="_blank" rel="noopener noreferrer">PRIM</a> d’Île-de-France Mobilités au moyen de votre clé personnelle. Ils restent soumis aux conditions et licences publiées par PRIM.</p> |
| 187 | <h3>Indépendance et code source</h3> | 187 | <h3>Indépendance et code source</h3> |
| 188 | <p>Lapin Futé est un projet personnel indépendant, sans affiliation, approbation ni parrainage d’Île-de-France Mobilités, de PRIM, d’ILICO, de Pebble ou de leurs ayants droit. Les noms et marques cités appartiennent à leurs titulaires.</p> | 188 | <p>Lapin Futé est un projet personnel indépendant, sans affiliation, approbation ni parrainage d’Île-de-France Mobilités, de PRIM, d’ILICO, de Pebble ou de leurs ayants droit. Les noms et marques cités appartiennent à leurs titulaires.</p> |
| 189 | <p>Code source : <a href="https://github.com/Anthodev/lapin-fute" target="_blank" rel="noopener noreferrer">github.com/Anthodev/lapin-fute</a>.</p> | 189 | <p>Code source : <a href="https://github.com/Anthodev/lapin-fute" target="_blank" rel="noopener noreferrer">github.com/Anthodev/lapin-fute</a>.</p> |
modified
packages/config-page/package.json +1 -1 | @@ -1,6 +1,6 @@ | ||
| 1 | 1 | { |
| 2 | 2 | "name": "@lapin-fute/config-page", |
| 3 | - "version": "1.0.2", | |
| 3 | + "version": "1.0.3", | |
| 4 | 4 | "license": "MIT", |
| 5 | 5 | "private": true, |
| 6 | 6 | "type": "module", |
| @@ -1,6 +1,6 @@ | |||
| 1 | { | 1 | { |
| 2 | "name": "@lapin-fute/config-page", | 2 | "name": "@lapin-fute/config-page", |
| 3 | - "version": "1.0.2", | 3 | + "version": "1.0.3", |
| 4 | "license": "MIT", | 4 | "license": "MIT", |
| 5 | "private": true, | 5 | "private": true, |
| 6 | "type": "module", | 6 | "type": "module", |
modified
packages/config-page/src/config-core.js +8 -8 | @@ -72,15 +72,15 @@ export const COPY = { | ||
| 72 | 72 | en: { |
| 73 | 73 | pageTitle: "Lapin Futé settings", |
| 74 | 74 | pageHeading: "Settings", |
| 75 | - intro: "Choose the departures you want at hand on your Pebble.", | |
| 75 | + intro: "Choose the stops you want at hand on your Pebble.", | |
| 76 | 76 | keyTitle: "PRIM access", |
| 77 | 77 | keyStatusConfigured: "A key is saved on this phone. It is not verified against PRIM.", |
| 78 | 78 | keyStatusMissing: "No key is configured.", |
| 79 | 79 | keyExplanation: "Your personal key stays in plaintext on your phone. This page never receives the saved key.", |
| 80 | 80 | keyLink: "Create a PRIM token", |
| 81 | 81 | keyDocsLink: "Instructions", |
| 82 | - keyRequirement: "A personal PRIM token is required to retrieve live departures. You can prepare your favorites without one.", | |
| 83 | - keyRequiredHint: "PRIM token required for live departures", | |
| 82 | + keyRequirement: "A personal PRIM token is required to retrieve live arrivals. You can prepare your favorites without one.", | |
| 83 | + keyRequiredHint: "PRIM token required for live arrivals", | |
| 84 | 84 | keyLabel: "Replace with a new key", |
| 85 | 85 | keyPlaceholder: "Paste a new key", |
| 86 | 86 | keyShow: "Show", |
| @@ -91,7 +91,7 @@ export const COPY = { | ||
| 91 | 91 | keyReplacementPending: "A replacement key is ready to save.", |
| 92 | 92 | keyErrorTooLong: "The key must be at most 512 UTF-8 bytes.", |
| 93 | 93 | keyErrorNewline: "The key must not contain control characters.", |
| 94 | - favoritesTitle: "Favorite departures", | |
| 94 | + favoritesTitle: "Favorite stops", | |
| 95 | 95 | favoriteUsed: "used", |
| 96 | 96 | favoritesUsed: "used", |
| 97 | 97 | favoriteAvailable: "available", |
| @@ -135,12 +135,12 @@ export const COPY = { | ||
| 135 | 135 | fr: { |
| 136 | 136 | pageTitle: "Réglages Lapin Futé", |
| 137 | 137 | pageHeading: "Réglages", |
| 138 | - intro: "Choisissez les prochains départs à garder sous la main sur votre Pebble.", | |
| 138 | + intro: "Choisissez les arrêts à garder sous la main sur votre Pebble.", | |
| 139 | 139 | keyTitle: "Accès PRIM", |
| 140 | 140 | keyStatusConfigured: "Une clé est enregistrée sur ce téléphone. Elle n’est pas vérifiée auprès de PRIM.", |
| 141 | 141 | keyDocsLink: "Instructions", |
| 142 | - keyRequirement: "Un jeton PRIM personnel est obligatoire pour récupérer les prochains départs en temps réel. Vous pouvez préparer vos favoris sans jeton.", | |
| 143 | - keyRequiredHint: "Jeton PRIM requis pour les départs en temps réel", | |
| 142 | + keyRequirement: "Un jeton PRIM personnel est obligatoire pour récupérer les prochains passages en temps réel. Vous pouvez préparer vos favoris sans jeton.", | |
| 143 | + keyRequiredHint: "Jeton PRIM requis pour les passages en temps réel", | |
| 144 | 144 | keyStatusMissing: "Aucune clé n’est configurée.", |
| 145 | 145 | keyExplanation: "Votre clé personnelle reste en clair sur votre téléphone. Cette page ne reçoit jamais la clé enregistrée.", |
| 146 | 146 | keyLink: "Créer un jeton PRIM", |
| @@ -154,7 +154,7 @@ export const COPY = { | ||
| 154 | 154 | keyReplacementPending: "Une nouvelle clé est prête à être enregistrée.", |
| 155 | 155 | keyErrorTooLong: "La clé doit contenir au maximum 512 octets UTF-8.", |
| 156 | 156 | keyErrorNewline: "La clé ne doit pas contenir de caractère de contrôle.", |
| 157 | - favoritesTitle: "Départs favoris", | |
| 157 | + favoritesTitle: "Arrêts favoris", | |
| 158 | 158 | favoriteUsed: "utilisé", |
| 159 | 159 | favoritesUsed: "utilisés", |
| 160 | 160 | favoriteAvailable: "disponible", |
| @@ -72,15 +72,15 @@ export const COPY = { | |||
| 72 | en: { | 72 | en: { |
| 73 | pageTitle: "Lapin Futé settings", | 73 | pageTitle: "Lapin Futé settings", |
| 74 | pageHeading: "Settings", | 74 | pageHeading: "Settings", |
| 75 | - intro: "Choose the departures you want at hand on your Pebble.", | 75 | + intro: "Choose the stops you want at hand on your Pebble.", |
| 76 | keyTitle: "PRIM access", | 76 | keyTitle: "PRIM access", |
| 77 | keyStatusConfigured: "A key is saved on this phone. It is not verified against PRIM.", | 77 | keyStatusConfigured: "A key is saved on this phone. It is not verified against PRIM.", |
| 78 | keyStatusMissing: "No key is configured.", | 78 | keyStatusMissing: "No key is configured.", |
| 79 | keyExplanation: "Your personal key stays in plaintext on your phone. This page never receives the saved key.", | 79 | keyExplanation: "Your personal key stays in plaintext on your phone. This page never receives the saved key.", |
| 80 | keyLink: "Create a PRIM token", | 80 | keyLink: "Create a PRIM token", |
| 81 | keyDocsLink: "Instructions", | 81 | keyDocsLink: "Instructions", |
| 82 | - keyRequirement: "A personal PRIM token is required to retrieve live departures. You can prepare your favorites without one.", | 82 | + keyRequirement: "A personal PRIM token is required to retrieve live arrivals. You can prepare your favorites without one.", |
| 83 | - keyRequiredHint: "PRIM token required for live departures", | 83 | + keyRequiredHint: "PRIM token required for live arrivals", |
| 84 | keyLabel: "Replace with a new key", | 84 | keyLabel: "Replace with a new key", |
| 85 | keyPlaceholder: "Paste a new key", | 85 | keyPlaceholder: "Paste a new key", |
| 86 | keyShow: "Show", | 86 | keyShow: "Show", |
| @@ -91,7 +91,7 @@ export const COPY = { | |||
| 91 | keyReplacementPending: "A replacement key is ready to save.", | 91 | keyReplacementPending: "A replacement key is ready to save.", |
| 92 | keyErrorTooLong: "The key must be at most 512 UTF-8 bytes.", | 92 | keyErrorTooLong: "The key must be at most 512 UTF-8 bytes.", |
| 93 | keyErrorNewline: "The key must not contain control characters.", | 93 | keyErrorNewline: "The key must not contain control characters.", |
| 94 | - favoritesTitle: "Favorite departures", | 94 | + favoritesTitle: "Favorite stops", |
| 95 | favoriteUsed: "used", | 95 | favoriteUsed: "used", |
| 96 | favoritesUsed: "used", | 96 | favoritesUsed: "used", |
| 97 | favoriteAvailable: "available", | 97 | favoriteAvailable: "available", |
| @@ -135,12 +135,12 @@ export const COPY = { | |||
| 135 | fr: { | 135 | fr: { |
| 136 | pageTitle: "Réglages Lapin Futé", | 136 | pageTitle: "Réglages Lapin Futé", |
| 137 | pageHeading: "Réglages", | 137 | pageHeading: "Réglages", |
| 138 | - intro: "Choisissez les prochains départs à garder sous la main sur votre Pebble.", | 138 | + intro: "Choisissez les arrêts à garder sous la main sur votre Pebble.", |
| 139 | keyTitle: "Accès PRIM", | 139 | keyTitle: "Accès PRIM", |
| 140 | keyStatusConfigured: "Une clé est enregistrée sur ce téléphone. Elle n’est pas vérifiée auprès de PRIM.", | 140 | keyStatusConfigured: "Une clé est enregistrée sur ce téléphone. Elle n’est pas vérifiée auprès de PRIM.", |
| 141 | keyDocsLink: "Instructions", | 141 | keyDocsLink: "Instructions", |
| 142 | - keyRequirement: "Un jeton PRIM personnel est obligatoire pour récupérer les prochains départs en temps réel. Vous pouvez préparer vos favoris sans jeton.", | 142 | + keyRequirement: "Un jeton PRIM personnel est obligatoire pour récupérer les prochains passages en temps réel. Vous pouvez préparer vos favoris sans jeton.", |
| 143 | - keyRequiredHint: "Jeton PRIM requis pour les départs en temps réel", | 143 | + keyRequiredHint: "Jeton PRIM requis pour les passages en temps réel", |
| 144 | keyStatusMissing: "Aucune clé n’est configurée.", | 144 | keyStatusMissing: "Aucune clé n’est configurée.", |
| 145 | keyExplanation: "Votre clé personnelle reste en clair sur votre téléphone. Cette page ne reçoit jamais la clé enregistrée.", | 145 | keyExplanation: "Votre clé personnelle reste en clair sur votre téléphone. Cette page ne reçoit jamais la clé enregistrée.", |
| 146 | keyLink: "Créer un jeton PRIM", | 146 | keyLink: "Créer un jeton PRIM", |
| @@ -154,7 +154,7 @@ export const COPY = { | |||
| 154 | keyReplacementPending: "Une nouvelle clé est prête à être enregistrée.", | 154 | keyReplacementPending: "Une nouvelle clé est prête à être enregistrée.", |
| 155 | keyErrorTooLong: "La clé doit contenir au maximum 512 octets UTF-8.", | 155 | keyErrorTooLong: "La clé doit contenir au maximum 512 octets UTF-8.", |
| 156 | keyErrorNewline: "La clé ne doit pas contenir de caractère de contrôle.", | 156 | keyErrorNewline: "La clé ne doit pas contenir de caractère de contrôle.", |
| 157 | - favoritesTitle: "Départs favoris", | 157 | + favoritesTitle: "Arrêts favoris", |
| 158 | favoriteUsed: "utilisé", | 158 | favoriteUsed: "utilisé", |
| 159 | favoritesUsed: "utilisés", | 159 | favoritesUsed: "utilisés", |
| 160 | favoriteAvailable: "disponible", | 160 | favoriteAvailable: "disponible", |
modified
packages/watch/package.json +1 -1 | @@ -1,7 +1,7 @@ | ||
| 1 | 1 | { |
| 2 | 2 | "name": "lapin-fute-watch", |
| 3 | 3 | "author": "Anthodev", |
| 4 | - "version": "1.0.2", | |
| 4 | + "version": "1.0.3", | |
| 5 | 5 | "license": "MIT", |
| 6 | 6 | "keywords": [ |
| 7 | 7 | "pebble-app" |
| @@ -1,7 +1,7 @@ | |||
| 1 | { | 1 | { |
| 2 | "name": "lapin-fute-watch", | 2 | "name": "lapin-fute-watch", |
| 3 | "author": "Anthodev", | 3 | "author": "Anthodev", |
| 4 | - "version": "1.0.2", | 4 | + "version": "1.0.3", |
| 5 | "license": "MIT", | 5 | "license": "MIT", |
| 6 | "keywords": [ | 6 | "keywords": [ |
| 7 | "pebble-app" | 7 | "pebble-app" |
modified
packages/watch/prototype-issue-16.html +15 -15 | @@ -367,11 +367,11 @@ | ||
| 367 | 367 | <main class="page"> |
| 368 | 368 | <section class="brief" aria-labelledby="page-title"> |
| 369 | 369 | <span class="prototype-label">Prototype · non production</span> |
| 370 | - <h1 id="page-title">Aperçu → Départs → État de la ligne</h1> | |
| 370 | + <h1 id="page-title">Aperçu → Passages → État de la ligne</h1> | |
| 371 | 371 | <p class="lede">Une lecture progressive : l'essentiel pour tous les favoris, le détail d'un trajet, puis le message trafic complet.</p> |
| 372 | 372 | <ol class="flow-map"> |
| 373 | - <li><div><strong>Aperçu semi-riche</strong><span>Un prochain départ par favori, avec un signal uniquement si l'état de la ligne mérite l'attention.</span></div></li> | |
| 374 | - <li><div><strong>Détail des départs</strong><span>Le prochain passage domine. La bande basse résume l'état de la ligne et ouvre le niveau suivant.</span></div></li> | |
| 373 | + <li><div><strong>Aperçu semi-riche</strong><span>Un prochain passage par favori, avec un signal uniquement si l'état de la ligne mérite l'attention.</span></div></li> | |
| 374 | + <li><div><strong>Détail des passages</strong><span>Le prochain passage domine. La bande basse résume l'état de la ligne et ouvre le niveau suivant.</span></div></li> | |
| 375 | 375 | <li><div><strong>État de la ligne</strong><span>Confirmation normale ou message IDFM paginé, sans réduire le texte jusqu'à l'illisibilité.</span></div></li> |
| 376 | 376 | </ol> |
| 377 | 377 | <aside class="decision"> |
| @@ -392,7 +392,7 @@ | ||
| 392 | 392 | </div></fieldset> |
| 393 | 393 | <fieldset><legend>Écran</legend><div class="button-group"> |
| 394 | 394 | <button class="control" data-group="screen" data-value="overview" aria-pressed="true">APERÇU</button> |
| 395 | - <button class="control" data-group="screen" data-value="detail" aria-pressed="false">DÉPARTS</button> | |
| 395 | + <button class="control" data-group="screen" data-value="detail" aria-pressed="false">PASSAGES</button> | |
| 396 | 396 | <button class="control" data-group="screen" data-value="traffic" aria-pressed="false">TRAFIC</button> |
| 397 | 397 | </div></fieldset> |
| 398 | 398 | <fieldset><legend>Données</legend><div class="button-group"> |
| @@ -436,7 +436,7 @@ | ||
| 436 | 436 | <li>état de ligne autoritatif, fraîcheur et message borné ;</li> |
| 437 | 437 | <li>Select et Retour deviennent de la navigation contextuelle.</li> |
| 438 | 438 | </ul></section> |
| 439 | - <section class="note"><h2>Source trafic envisagée</h2><p>L'API PRIM <a href="https://prim.iledefrance-mobilites.fr/fr/apis/idfm-disruptions_bulk">Messages Info Trafic — Requête globale</a> publie lignes impactées, sévérité, titre, message et périodes. « Normal » n'est valide qu'après une réponse complète et récente ; une erreur donne « inconnu ». Un départ retardé ne suffit jamais à déclarer toute la ligne retardée.</p></section> | |
| 439 | + <section class="note"><h2>Source trafic envisagée</h2><p>L'API PRIM <a href="https://prim.iledefrance-mobilites.fr/fr/apis/idfm-disruptions_bulk">Messages Info Trafic — Requête globale</a> publie lignes impactées, sévérité, titre, message et périodes. « Normal » n'est valide qu'après une réponse complète et récente ; une erreur donne « inconnu ». Un passage retardé ne suffit jamais à déclarer toute la ligne retardée.</p></section> | |
| 440 | 440 | <section class="note legal"><h2>Pastilles de ligne</h2><p>Les pastilles affichées sont propres au prototype. Les droits de redistribution et de modification des pictogrammes officiels ne sont pas suffisamment explicites. Le protocole montre actuel ne transporte par ailleurs ni mode ni couleurs de ligne.</p></section> |
| 441 | 441 | <section class="note"><h2>Chargement</h2><p>Le plein écran avec sablier est réservé au démarrage sans aucun résumé utilisable. Avec du cache, l'aperçu reste affiché pendant l'actualisation et les succès partiels restent disponibles.</p></section> |
| 442 | 442 | </div> |
| @@ -453,15 +453,15 @@ | ||
| 453 | 453 | normal: "Trafic normal", delayed: "Retards sur la ligne", stopped: "Trafic interrompu", unknown: "État du trafic indisponible", |
| 454 | 454 | normalTitle: "Aucune perturbation signalée", normalMessage: "Dernière vérification à 09:42.", |
| 455 | 455 | delayedTitle: "Retards sur la ligne", delayedValidity: "En cours · reprise estimée 10:30", |
| 456 | - delayedPages: ["Des retards sont constatés sur l'ensemble de la ligne en raison d'un incident d'exploitation.", "Prévoyez un temps de parcours supplémentaire. Vérifiez votre correspondance avant le départ."], | |
| 456 | + delayedPages: ["Des retards sont constatés sur l'ensemble de la ligne en raison d'un incident d'exploitation.", "Prévoyez un temps de parcours supplémentaire. Vérifiez votre correspondance avant de partir."], | |
| 457 | 457 | stoppedTitle: "Trafic interrompu", stoppedValidity: "Entre République et Balard · jusqu'à 11:15", |
| 458 | 458 | stoppedPages: ["Le trafic est interrompu entre République et Balard à la suite d'un incident voyageur.", "Une reprise progressive est estimée à 11:15. Empruntez les itinéraires alternatifs indiqués en station."], |
| 459 | 459 | unknownTitle: "Information trafic indisponible", unknownMessage: "Impossible de confirmer l'état actuel de la ligne. Les horaires restent affichés séparément.", |
| 460 | - loadingTitle: "Rafraîchissement des informations en cours", loadingBody: "Premier chargement des favoris et de leurs prochains départs.", | |
| 460 | + loadingTitle: "Rafraîchissement des informations en cours", loadingBody: "Premier chargement des favoris et de leurs prochains passages.", | |
| 461 | 461 | unconfiguredTitle: "Configuration requise", unconfiguredBody: "Ajoutez votre clé PRIM et au moins un favori dans les options du téléphone.", |
| 462 | - unavailableTitle: "Départs indisponibles", unavailableBody: "La connexion n'a pas permis de récupérer les informations.", | |
| 462 | + unavailableTitle: "Passages indisponibles", unavailableBody: "La connexion n'a pas permis de récupérer les informations.", | |
| 463 | 463 | backExit: "Retour quitte l'application.", retry: "Select · Réessayer", automatic: "La configuration sera détectée automatiquement.", |
| 464 | - departedDelayed: "Départ retardé", positions: "favoris" | |
| 464 | + departedDelayed: "Passage retardé", positions: "favoris" | |
| 465 | 465 | }, |
| 466 | 466 | en: { |
| 467 | 467 | time: "09:42", ready: "up to date", refreshing: "updating", stale: "old data", |
| @@ -472,12 +472,12 @@ | ||
| 472 | 472 | delayedPages: ["Delays are affecting the whole line because of an operating incident.", "Allow extra journey time. Check your connection before leaving."], |
| 473 | 473 | stoppedTitle: "Service interrupted", stoppedValidity: "Between République and Balard · until 11:15", |
| 474 | 474 | stoppedPages: ["Service is interrupted between République and Balard following a passenger incident.", "Progressive recovery is estimated at 11:15. Use the alternatives shown in stations."], |
| 475 | - unknownTitle: "Traffic information unavailable", unknownMessage: "The current line status cannot be confirmed. Departure times remain separate.", | |
| 476 | - loadingTitle: "Refreshing information", loadingBody: "First load of favorites and their next departures.", | |
| 475 | + unknownTitle: "Traffic information unavailable", unknownMessage: "The current line status cannot be confirmed. Arrival times remain separate.", | |
| 476 | + loadingTitle: "Refreshing information", loadingBody: "First load of favorites and their next arrivals.", | |
| 477 | 477 | unconfiguredTitle: "Configuration required", unconfiguredBody: "Add your PRIM key and at least one favorite in phone options.", |
| 478 | - unavailableTitle: "Departures unavailable", unavailableBody: "The connection could not retrieve the information.", | |
| 478 | + unavailableTitle: "Arrivals unavailable", unavailableBody: "The connection could not retrieve the information.", | |
| 479 | 479 | backExit: "Back exits the app.", retry: "Select · Retry", automatic: "Configuration will be detected automatically.", |
| 480 | - departedDelayed: "Departure delayed", positions: "favorites" | |
| 480 | + departedDelayed: "Arrival delayed", positions: "favorites" | |
| 481 | 481 | } |
| 482 | 482 | }; |
| 483 | 483 | |
| @@ -615,8 +615,8 @@ | ||
| 615 | 615 | keys[0].textContent = state.language === "fr" ? "Page précédente" : "Previous page"; |
| 616 | 616 | keys[1].textContent = state.language === "fr" ? "Aucune action" : "No action"; |
| 617 | 617 | keys[2].textContent = state.language === "fr" ? "Page suivante" : "Next page"; |
| 618 | - keys[3].textContent = state.language === "fr" ? "Départs" : "Departures"; | |
| 619 | - interactionNote.textContent = state.language === "fr" ? "Haut/Bas pagine un message long. Select reste sans action. Retour revient aux départs." : "Up/Down pages long messages. Select has no action. Back returns to departures."; | |
| 618 | + keys[3].textContent = state.language === "fr" ? "Passages" : "Arrivals"; | |
| 619 | + interactionNote.textContent = state.language === "fr" ? "Haut/Bas pagine un message long. Select reste sans action. Retour revient aux passages." : "Up/Down pages long messages. Select has no action. Back returns to arrivals."; | |
| 620 | 620 | } |
| 621 | 621 | } |
| 622 | 622 | |
| @@ -367,11 +367,11 @@ | |||
| 367 | <main class="page"> | 367 | <main class="page"> |
| 368 | <section class="brief" aria-labelledby="page-title"> | 368 | <section class="brief" aria-labelledby="page-title"> |
| 369 | <span class="prototype-label">Prototype · non production</span> | 369 | <span class="prototype-label">Prototype · non production</span> |
| 370 | - <h1 id="page-title">Aperçu → Départs → État de la ligne</h1> | 370 | + <h1 id="page-title">Aperçu → Passages → État de la ligne</h1> |
| 371 | <p class="lede">Une lecture progressive : l'essentiel pour tous les favoris, le détail d'un trajet, puis le message trafic complet.</p> | 371 | <p class="lede">Une lecture progressive : l'essentiel pour tous les favoris, le détail d'un trajet, puis le message trafic complet.</p> |
| 372 | <ol class="flow-map"> | 372 | <ol class="flow-map"> |
| 373 | - <li><div><strong>Aperçu semi-riche</strong><span>Un prochain départ par favori, avec un signal uniquement si l'état de la ligne mérite l'attention.</span></div></li> | 373 | + <li><div><strong>Aperçu semi-riche</strong><span>Un prochain passage par favori, avec un signal uniquement si l'état de la ligne mérite l'attention.</span></div></li> |
| 374 | - <li><div><strong>Détail des départs</strong><span>Le prochain passage domine. La bande basse résume l'état de la ligne et ouvre le niveau suivant.</span></div></li> | 374 | + <li><div><strong>Détail des passages</strong><span>Le prochain passage domine. La bande basse résume l'état de la ligne et ouvre le niveau suivant.</span></div></li> |
| 375 | <li><div><strong>État de la ligne</strong><span>Confirmation normale ou message IDFM paginé, sans réduire le texte jusqu'à l'illisibilité.</span></div></li> | 375 | <li><div><strong>État de la ligne</strong><span>Confirmation normale ou message IDFM paginé, sans réduire le texte jusqu'à l'illisibilité.</span></div></li> |
| 376 | </ol> | 376 | </ol> |
| 377 | <aside class="decision"> | 377 | <aside class="decision"> |
| @@ -392,7 +392,7 @@ | |||
| 392 | </div></fieldset> | 392 | </div></fieldset> |
| 393 | <fieldset><legend>Écran</legend><div class="button-group"> | 393 | <fieldset><legend>Écran</legend><div class="button-group"> |
| 394 | <button class="control" data-group="screen" data-value="overview" aria-pressed="true">APERÇU</button> | 394 | <button class="control" data-group="screen" data-value="overview" aria-pressed="true">APERÇU</button> |
| 395 | - <button class="control" data-group="screen" data-value="detail" aria-pressed="false">DÉPARTS</button> | 395 | + <button class="control" data-group="screen" data-value="detail" aria-pressed="false">PASSAGES</button> |
| 396 | <button class="control" data-group="screen" data-value="traffic" aria-pressed="false">TRAFIC</button> | 396 | <button class="control" data-group="screen" data-value="traffic" aria-pressed="false">TRAFIC</button> |
| 397 | </div></fieldset> | 397 | </div></fieldset> |
| 398 | <fieldset><legend>Données</legend><div class="button-group"> | 398 | <fieldset><legend>Données</legend><div class="button-group"> |
| @@ -436,7 +436,7 @@ | |||
| 436 | <li>état de ligne autoritatif, fraîcheur et message borné ;</li> | 436 | <li>état de ligne autoritatif, fraîcheur et message borné ;</li> |
| 437 | <li>Select et Retour deviennent de la navigation contextuelle.</li> | 437 | <li>Select et Retour deviennent de la navigation contextuelle.</li> |
| 438 | </ul></section> | 438 | </ul></section> |
| 439 | - <section class="note"><h2>Source trafic envisagée</h2><p>L'API PRIM <a href="https://prim.iledefrance-mobilites.fr/fr/apis/idfm-disruptions_bulk">Messages Info Trafic — Requête globale</a> publie lignes impactées, sévérité, titre, message et périodes. « Normal » n'est valide qu'après une réponse complète et récente ; une erreur donne « inconnu ». Un départ retardé ne suffit jamais à déclarer toute la ligne retardée.</p></section> | 439 | + <section class="note"><h2>Source trafic envisagée</h2><p>L'API PRIM <a href="https://prim.iledefrance-mobilites.fr/fr/apis/idfm-disruptions_bulk">Messages Info Trafic — Requête globale</a> publie lignes impactées, sévérité, titre, message et périodes. « Normal » n'est valide qu'après une réponse complète et récente ; une erreur donne « inconnu ». Un passage retardé ne suffit jamais à déclarer toute la ligne retardée.</p></section> |
| 440 | <section class="note legal"><h2>Pastilles de ligne</h2><p>Les pastilles affichées sont propres au prototype. Les droits de redistribution et de modification des pictogrammes officiels ne sont pas suffisamment explicites. Le protocole montre actuel ne transporte par ailleurs ni mode ni couleurs de ligne.</p></section> | 440 | <section class="note legal"><h2>Pastilles de ligne</h2><p>Les pastilles affichées sont propres au prototype. Les droits de redistribution et de modification des pictogrammes officiels ne sont pas suffisamment explicites. Le protocole montre actuel ne transporte par ailleurs ni mode ni couleurs de ligne.</p></section> |
| 441 | <section class="note"><h2>Chargement</h2><p>Le plein écran avec sablier est réservé au démarrage sans aucun résumé utilisable. Avec du cache, l'aperçu reste affiché pendant l'actualisation et les succès partiels restent disponibles.</p></section> | 441 | <section class="note"><h2>Chargement</h2><p>Le plein écran avec sablier est réservé au démarrage sans aucun résumé utilisable. Avec du cache, l'aperçu reste affiché pendant l'actualisation et les succès partiels restent disponibles.</p></section> |
| 442 | </div> | 442 | </div> |
| @@ -453,15 +453,15 @@ | |||
| 453 | normal: "Trafic normal", delayed: "Retards sur la ligne", stopped: "Trafic interrompu", unknown: "État du trafic indisponible", | 453 | normal: "Trafic normal", delayed: "Retards sur la ligne", stopped: "Trafic interrompu", unknown: "État du trafic indisponible", |
| 454 | normalTitle: "Aucune perturbation signalée", normalMessage: "Dernière vérification à 09:42.", | 454 | normalTitle: "Aucune perturbation signalée", normalMessage: "Dernière vérification à 09:42.", |
| 455 | delayedTitle: "Retards sur la ligne", delayedValidity: "En cours · reprise estimée 10:30", | 455 | delayedTitle: "Retards sur la ligne", delayedValidity: "En cours · reprise estimée 10:30", |
| 456 | - delayedPages: ["Des retards sont constatés sur l'ensemble de la ligne en raison d'un incident d'exploitation.", "Prévoyez un temps de parcours supplémentaire. Vérifiez votre correspondance avant le départ."], | 456 | + delayedPages: ["Des retards sont constatés sur l'ensemble de la ligne en raison d'un incident d'exploitation.", "Prévoyez un temps de parcours supplémentaire. Vérifiez votre correspondance avant de partir."], |
| 457 | stoppedTitle: "Trafic interrompu", stoppedValidity: "Entre République et Balard · jusqu'à 11:15", | 457 | stoppedTitle: "Trafic interrompu", stoppedValidity: "Entre République et Balard · jusqu'à 11:15", |
| 458 | stoppedPages: ["Le trafic est interrompu entre République et Balard à la suite d'un incident voyageur.", "Une reprise progressive est estimée à 11:15. Empruntez les itinéraires alternatifs indiqués en station."], | 458 | stoppedPages: ["Le trafic est interrompu entre République et Balard à la suite d'un incident voyageur.", "Une reprise progressive est estimée à 11:15. Empruntez les itinéraires alternatifs indiqués en station."], |
| 459 | unknownTitle: "Information trafic indisponible", unknownMessage: "Impossible de confirmer l'état actuel de la ligne. Les horaires restent affichés séparément.", | 459 | unknownTitle: "Information trafic indisponible", unknownMessage: "Impossible de confirmer l'état actuel de la ligne. Les horaires restent affichés séparément.", |
| 460 | - loadingTitle: "Rafraîchissement des informations en cours", loadingBody: "Premier chargement des favoris et de leurs prochains départs.", | 460 | + loadingTitle: "Rafraîchissement des informations en cours", loadingBody: "Premier chargement des favoris et de leurs prochains passages.", |
| 461 | unconfiguredTitle: "Configuration requise", unconfiguredBody: "Ajoutez votre clé PRIM et au moins un favori dans les options du téléphone.", | 461 | unconfiguredTitle: "Configuration requise", unconfiguredBody: "Ajoutez votre clé PRIM et au moins un favori dans les options du téléphone.", |
| 462 | - unavailableTitle: "Départs indisponibles", unavailableBody: "La connexion n'a pas permis de récupérer les informations.", | 462 | + unavailableTitle: "Passages indisponibles", unavailableBody: "La connexion n'a pas permis de récupérer les informations.", |
| 463 | backExit: "Retour quitte l'application.", retry: "Select · Réessayer", automatic: "La configuration sera détectée automatiquement.", | 463 | backExit: "Retour quitte l'application.", retry: "Select · Réessayer", automatic: "La configuration sera détectée automatiquement.", |
| 464 | - departedDelayed: "Départ retardé", positions: "favoris" | 464 | + departedDelayed: "Passage retardé", positions: "favoris" |
| 465 | }, | 465 | }, |
| 466 | en: { | 466 | en: { |
| 467 | time: "09:42", ready: "up to date", refreshing: "updating", stale: "old data", | 467 | time: "09:42", ready: "up to date", refreshing: "updating", stale: "old data", |
| @@ -472,12 +472,12 @@ | |||
| 472 | delayedPages: ["Delays are affecting the whole line because of an operating incident.", "Allow extra journey time. Check your connection before leaving."], | 472 | delayedPages: ["Delays are affecting the whole line because of an operating incident.", "Allow extra journey time. Check your connection before leaving."], |
| 473 | stoppedTitle: "Service interrupted", stoppedValidity: "Between République and Balard · until 11:15", | 473 | stoppedTitle: "Service interrupted", stoppedValidity: "Between République and Balard · until 11:15", |
| 474 | stoppedPages: ["Service is interrupted between République and Balard following a passenger incident.", "Progressive recovery is estimated at 11:15. Use the alternatives shown in stations."], | 474 | stoppedPages: ["Service is interrupted between République and Balard following a passenger incident.", "Progressive recovery is estimated at 11:15. Use the alternatives shown in stations."], |
| 475 | - unknownTitle: "Traffic information unavailable", unknownMessage: "The current line status cannot be confirmed. Departure times remain separate.", | 475 | + unknownTitle: "Traffic information unavailable", unknownMessage: "The current line status cannot be confirmed. Arrival times remain separate.", |
| 476 | - loadingTitle: "Refreshing information", loadingBody: "First load of favorites and their next departures.", | 476 | + loadingTitle: "Refreshing information", loadingBody: "First load of favorites and their next arrivals.", |
| 477 | unconfiguredTitle: "Configuration required", unconfiguredBody: "Add your PRIM key and at least one favorite in phone options.", | 477 | unconfiguredTitle: "Configuration required", unconfiguredBody: "Add your PRIM key and at least one favorite in phone options.", |
| 478 | - unavailableTitle: "Departures unavailable", unavailableBody: "The connection could not retrieve the information.", | 478 | + unavailableTitle: "Arrivals unavailable", unavailableBody: "The connection could not retrieve the information.", |
| 479 | backExit: "Back exits the app.", retry: "Select · Retry", automatic: "Configuration will be detected automatically.", | 479 | backExit: "Back exits the app.", retry: "Select · Retry", automatic: "Configuration will be detected automatically.", |
| 480 | - departedDelayed: "Departure delayed", positions: "favorites" | 480 | + departedDelayed: "Arrival delayed", positions: "favorites" |
| 481 | } | 481 | } |
| 482 | }; | 482 | }; |
| 483 | 483 | ||
| @@ -615,8 +615,8 @@ | |||
| 615 | keys[0].textContent = state.language === "fr" ? "Page précédente" : "Previous page"; | 615 | keys[0].textContent = state.language === "fr" ? "Page précédente" : "Previous page"; |
| 616 | keys[1].textContent = state.language === "fr" ? "Aucune action" : "No action"; | 616 | keys[1].textContent = state.language === "fr" ? "Aucune action" : "No action"; |
| 617 | keys[2].textContent = state.language === "fr" ? "Page suivante" : "Next page"; | 617 | keys[2].textContent = state.language === "fr" ? "Page suivante" : "Next page"; |
| 618 | - keys[3].textContent = state.language === "fr" ? "Départs" : "Departures"; | 618 | + keys[3].textContent = state.language === "fr" ? "Passages" : "Arrivals"; |
| 619 | - interactionNote.textContent = state.language === "fr" ? "Haut/Bas pagine un message long. Select reste sans action. Retour revient aux départs." : "Up/Down pages long messages. Select has no action. Back returns to departures."; | 619 | + interactionNote.textContent = state.language === "fr" ? "Haut/Bas pagine un message long. Select reste sans action. Retour revient aux passages." : "Up/Down pages long messages. Select has no action. Back returns to arrivals."; |
| 620 | } | 620 | } |
| 621 | } | 621 | } |
| 622 | 622 | ||