[ADD] application: clock, translation, formatting, displayed name
The screens need one clock, one translation mechanism and one way to
format and name, or each component grows its own. horloge.js is the only
code that reads time and arms timers, injected so tests drive it.
traduction.js keys texts by domain, in two families of tables, raises on a
missing key and never shows a raw key; libelles/ splits the label table by
domain. format.js formats numbers and dates in French, and personnes.js
composes the displayed name the frozen labels use. Nothing persists
between sessions.
Checked: 1773 node and 43 browser tests.
--- FR ---
[ADD] application : horloge, traduction, mise en forme, nom affiché
Les écrans exigent une horloge, un mécanisme de traduction et une façon de
mettre en forme et de nommer, sans quoi chaque composant ferait les siens.
horloge.js est le seul code qui lit l'heure et arme des minuteries, injecté
pour que les épreuves le pilotent. traduction.js range les textes par
domaine, en deux familles de tables, lève sur une clé absente et ne montre
jamais une clé brute ; libelles/ découpe la table des libellés par domaine.
format.js met en forme nombres et dates en français, et personnes.js
compose le nom affiché qu'emploient les libellés figés. Rien ne persiste
d'une séance à l'autre.
Vérifié : 1773 node et 43 navigateur.
Assisted-by: Claude Opus 5.5
2026-10-07 02:33:39 -04:00
|
|
|
// © 2026 TechnoLibre (http://www.technolibre.ca)
|
|
|
|
|
// License AGPL-3.0 or later (https://www.gnu.org/licenses/agpl)
|
|
|
|
|
|
[ADD] interface: application shell — banner, sections, theme, about
The window showed only a banner; it now holds the application. App mounts
the session, the facade and the generation, settles the working folder
and lists its events before it reports ready, re-reading the list once a
question is answered or a refused determination succeeds. The banner
carries version, mode and the event list command; an open event shows its
sections in their first form; the theme follows the system at each start
and the operator's choice lasts the session; À propos names the build.
Errors are collected for a report, and Electron removes the session's
locks at exit.
Checked: 2189 node, 193 browser, 60 node-long; the Electron start check.
--- FR ---
[ADD] interface : coquille — bandeau, sections, thème, À propos
La fenêtre ne montrait qu'un bandeau ; elle tient désormais l'application.
App monte la séance, la façade et la génération, règle le dossier de
travail et liste ses événements avant de se dire prête, et relit la liste
une fois une question répondue ou une détermination refusée réussie. Le
bandeau porte version, mode et la commande de la liste ; un événement
ouvert montre ses sections dans leur première forme ; le thème suit le
système à chaque démarrage et le choix de l'opérateur vaut pour la séance ;
À propos nomme la construction. Les erreurs se collectent pour un
signalement, et Electron efface à la sortie les verrous de la séance.
Vérifié : 2189 node, 193 navigateur, 60 node-long ; démarrage d'Electron.
Assisted-by: Claude Opus 5.5
2026-10-07 07:22:05 -04:00
|
|
|
// Les textes de la coquille (§ 8.4, § 18.6, § 19.2) : le nom de
|
|
|
|
|
// l'application, le titre du bandeau et de la fenêtre, la provenance de la
|
|
|
|
|
// construction par mode de Vite, le libellé de mode, l'annonce de format, le
|
|
|
|
|
// réglage de thème, « Liste des événements », le panneau « À propos » et son
|
|
|
|
|
// bloc, et le titre de chaque section de l'événement, que la navigation et
|
|
|
|
|
// chaque section reprennent. Un mode sans clé s'affiche sous son propre nom
|
|
|
|
|
// (libelles.js). Chaque clé commence par « coquille. ».
|
[ADD] application: clock, translation, formatting, displayed name
The screens need one clock, one translation mechanism and one way to
format and name, or each component grows its own. horloge.js is the only
code that reads time and arms timers, injected so tests drive it.
traduction.js keys texts by domain, in two families of tables, raises on a
missing key and never shows a raw key; libelles/ splits the label table by
domain. format.js formats numbers and dates in French, and personnes.js
composes the displayed name the frozen labels use. Nothing persists
between sessions.
Checked: 1773 node and 43 browser tests.
--- FR ---
[ADD] application : horloge, traduction, mise en forme, nom affiché
Les écrans exigent une horloge, un mécanisme de traduction et une façon de
mettre en forme et de nommer, sans quoi chaque composant ferait les siens.
horloge.js est le seul code qui lit l'heure et arme des minuteries, injecté
pour que les épreuves le pilotent. traduction.js range les textes par
domaine, en deux familles de tables, lève sur une clé absente et ne montre
jamais une clé brute ; libelles/ découpe la table des libellés par domaine.
format.js met en forme nombres et dates en français, et personnes.js
compose le nom affiché qu'emploient les libellés figés. Rien ne persiste
d'une séance à l'autre.
Vérifié : 1773 node et 43 navigateur.
Assisted-by: Claude Opus 5.5
2026-10-07 02:33:39 -04:00
|
|
|
export const TABLE = new Map([
|
|
|
|
|
['coquille.nom', 'Gestion table tournante Libre'],
|
|
|
|
|
['coquille.titre', ({ version }, texte) => `${texte('coquille.nom')} \u{2014} ${version}`],
|
|
|
|
|
['coquille.provenance.developpement', 'développement'],
|
|
|
|
|
['coquille.provenance.livraison', 'livraison'],
|
|
|
|
|
['coquille.provenance.documentation', 'documentation'],
|
|
|
|
|
['coquille.provenance.test', 'épreuve'],
|
[ADD] interface: application shell — banner, sections, theme, about
The window showed only a banner; it now holds the application. App mounts
the session, the facade and the generation, settles the working folder
and lists its events before it reports ready, re-reading the list once a
question is answered or a refused determination succeeds. The banner
carries version, mode and the event list command; an open event shows its
sections in their first form; the theme follows the system at each start
and the operator's choice lasts the session; À propos names the build.
Errors are collected for a report, and Electron removes the session's
locks at exit.
Checked: 2189 node, 193 browser, 60 node-long; the Electron start check.
--- FR ---
[ADD] interface : coquille — bandeau, sections, thème, À propos
La fenêtre ne montrait qu'un bandeau ; elle tient désormais l'application.
App monte la séance, la façade et la génération, règle le dossier de
travail et liste ses événements avant de se dire prête, et relit la liste
une fois une question répondue ou une détermination refusée réussie. Le
bandeau porte version, mode et la commande de la liste ; un événement
ouvert montre ses sections dans leur première forme ; le thème suit le
système à chaque démarrage et le choix de l'opérateur vaut pour la séance ;
À propos nomme la construction. Les erreurs se collectent pour un
signalement, et Electron efface à la sortie les verrous de la séance.
Vérifié : 2189 node, 193 navigateur, 60 node-long ; démarrage d'Electron.
Assisted-by: Claude Opus 5.5
2026-10-07 07:22:05 -04:00
|
|
|
|
|
|
|
|
// La version à l'écran : le mot qui la précède au premier écran, et la
|
|
|
|
|
// marque qui la remplace dans une construction de documentation (§ 19.4).
|
|
|
|
|
['coquille.version.libelle', 'version'],
|
|
|
|
|
['coquille.version.documentation', 'construction de documentation'],
|
|
|
|
|
|
|
|
|
|
// Le libellé de mode, que rend cleDeMode (mode.js).
|
|
|
|
|
['coquille.mode.lecture', 'Lecture'],
|
|
|
|
|
['coquille.mode.ecriture', 'Écriture'],
|
|
|
|
|
['coquille.mode.bloque', 'Plan bloqué'],
|
|
|
|
|
|
|
|
|
|
// L'annonce de la version de format du fichier ouvert (§ 18.6).
|
|
|
|
|
['coquille.format.plusRecent', 'Ce fichier s\u{2019}ouvre en lecture seule'],
|
|
|
|
|
['coquille.format.plusAncien', 'Ce fichier se convertira à votre première modification'],
|
|
|
|
|
|
|
|
|
|
// Le réglage de thème (§ 19.2).
|
|
|
|
|
['coquille.theme.titre', 'Thème'],
|
|
|
|
|
['coquille.theme.clair', 'Clair'],
|
|
|
|
|
['coquille.theme.sombre', 'Sombre'],
|
|
|
|
|
|
|
|
|
|
['coquille.liste', 'Liste des événements'],
|
|
|
|
|
|
|
|
|
|
// Le panneau « À propos ». Le bloc : nom, version affichée, version
|
|
|
|
|
// Windows, plateforme, provenance — son libellé, ou le mode lui-même quand
|
|
|
|
|
// il n'en a pas —, version de format.
|
|
|
|
|
['coquille.apropos.titre', 'À propos'],
|
|
|
|
|
[
|
|
|
|
|
'coquille.apropos.bloc',
|
|
|
|
|
({ affichee, windows, plateforme, provenance, format }, texte) => {
|
|
|
|
|
const cle = `coquille.provenance.${provenance}`;
|
|
|
|
|
return [
|
|
|
|
|
texte('coquille.nom'),
|
|
|
|
|
affichee,
|
|
|
|
|
windows,
|
|
|
|
|
plateforme,
|
|
|
|
|
texte.existe(cle) ? texte(cle) : provenance,
|
|
|
|
|
texte('coquille.apropos.format', { format }),
|
|
|
|
|
].join(' \u{00B7} ');
|
|
|
|
|
},
|
|
|
|
|
],
|
|
|
|
|
['coquille.apropos.format', ({ format }) => `format ${format}`],
|
|
|
|
|
['coquille.apropos.copier', 'Copier'],
|
|
|
|
|
['coquille.apropos.fermer', 'Fermer'],
|
|
|
|
|
['coquille.apropos.copie', 'Bloc copié dans le presse-papiers'],
|
|
|
|
|
['coquille.apropos.copieRefusee', 'Le presse-papiers a refusé la copie'],
|
|
|
|
|
|
|
|
|
|
// Les sections de l'événement, dans l'ordre du § 2.1 (sections.js), et
|
|
|
|
|
// leur navigation.
|
|
|
|
|
['coquille.navigation', 'Sections de l\u{2019}événement'],
|
|
|
|
|
['coquille.section.import', 'Import'],
|
|
|
|
|
['coquille.section.participants', 'Participants'],
|
|
|
|
|
['coquille.section.tables', 'Tables et tours'],
|
|
|
|
|
['coquille.section.plan', 'Plan'],
|
|
|
|
|
['coquille.section.diagnostic', 'Diagnostic'],
|
|
|
|
|
['coquille.section.generation', 'Génération'],
|
|
|
|
|
['coquille.section.propositions', 'Propositions'],
|
[ADD] application: clock, translation, formatting, displayed name
The screens need one clock, one translation mechanism and one way to
format and name, or each component grows its own. horloge.js is the only
code that reads time and arms timers, injected so tests drive it.
traduction.js keys texts by domain, in two families of tables, raises on a
missing key and never shows a raw key; libelles/ splits the label table by
domain. format.js formats numbers and dates in French, and personnes.js
composes the displayed name the frozen labels use. Nothing persists
between sessions.
Checked: 1773 node and 43 browser tests.
--- FR ---
[ADD] application : horloge, traduction, mise en forme, nom affiché
Les écrans exigent une horloge, un mécanisme de traduction et une façon de
mettre en forme et de nommer, sans quoi chaque composant ferait les siens.
horloge.js est le seul code qui lit l'heure et arme des minuteries, injecté
pour que les épreuves le pilotent. traduction.js range les textes par
domaine, en deux familles de tables, lève sur une clé absente et ne montre
jamais une clé brute ; libelles/ découpe la table des libellés par domaine.
format.js met en forme nombres et dates en français, et personnes.js
compose le nom affiché qu'emploient les libellés figés. Rien ne persiste
d'une séance à l'autre.
Vérifié : 1773 node et 43 navigateur.
Assisted-by: Claude Opus 5.5
2026-10-07 02:33:39 -04:00
|
|
|
]);
|