gestion_table_tournante_libre/src/interface/libelles.js

65 lines
2.6 KiB
JavaScript
Raw Normal View History

// © 2026 TechnoLibre (http://www.technolibre.ca)
// License AGPL-3.0 or later (https://www.gnu.org/licenses/agpl)
// L'assemblage des textes des écrans (§ 14.6). Un composant n'écrit aucune
// chaîne visible en dur : il les lit par la traduction, dont les tables
// d'écran sont sous libelles/, une par écran, réunies ici dans l'ordre
// alphabétique de leurs fichiers ; aucune table n'importe cet assemblage.
//
// libelleProvenance, aUnLibelle et titreAvecVersion lisent en français la
// table de la coquille : le bandeau, le titre de la fenêtre, l'essai de
// démarrage et le livrable les appellent sans connaître la traduction.
import { creerTraduction } from '../application/traduction.js';
import { TABLE as ACCUEIL } from './libelles/accueil.js';
import { TABLE as COMMUNS } from './libelles/communs.js';
import { TABLE as COQUILLE } from './libelles/coquille.js';
import { TABLE as DIAGNOSTIC } from './libelles/diagnostic.js';
import { TABLE as EVENEMENT } from './libelles/evenement.js';
import { TABLE as GENERATION } from './libelles/generation.js';
import { TABLE as IMPORT } from './libelles/import.js';
import { TABLE as PARTICIPANTS } from './libelles/participants.js';
import { TABLE as PLAN } from './libelles/plan.js';
import { TABLE as PROPOSITIONS } from './libelles/propositions.js';
import { TABLE as TABLES } from './libelles/tables.js';
/** Les tables de libelles/, dans l'ordre alphabétique de leurs fichiers. */
export const TABLES_INTERFACE = Object.freeze([
ACCUEIL,
COMMUNS,
COQUILLE,
DIAGNOSTIC,
EVENEMENT,
GENERATION,
IMPORT,
PARTICIPANTS,
PLAN,
PROPOSITIONS,
TABLES,
]);
const { t } = creerTraduction(TABLES_INTERFACE);
// La clé de la provenance d'un mode de Vite (§ 18.6). La table est une Map :
// elle ne répond qu'aux clés qu'on y a posées, et un mode nommé comme une
// propriété héritée d'Object n'en trouve aucune.
const cleProvenance = (mode) => `coquille.provenance.${mode}`;
// Vrai quand le mode a un libellé déclaré. Comparer libelleProvenance(mode) à
// mode ne le dit pas : « livraison » et « documentation » ont un libellé
// identique à leur nom.
export function aUnLibelle(mode) {
return COQUILLE.has(cleProvenance(mode));
}
// Libellé de la provenance pour un mode de Vite. Un mode sans libellé, comme
// celui d'un « vite build » lancé sans --mode, s'affiche sous son propre nom.
export function libelleProvenance(mode) {
return aUnLibelle(mode) ? t(cleProvenance(mode)) : mode;
}
// Nom de l'application suivi de la version affichée : texte du bandeau et
// titre de la fenêtre (§ 18.6).
export function titreAvecVersion(version) {
return t('coquille.titre', { version });
}