v3 : modules d'ordre et de titre — l'interface, restes mineurs (L11, C25–C27)

Chaque section du lecteur finit par l'ordre de ses articles (inertie 2) : ses
articles numérotés, son vote déplié, « Proposer un autre ordre » — une liste où
l'on clique un article puis sa place, ses flèches, ou le clavier. Le titre du
document (inertie 4) se vote et se propose sous le titre, « traduction à
revoir » quand il a changé. Les deux sont dans la liste des propositions, le
panier et la chaîne Ğ1 ; un nouvel article se propose dans une section, à sa fin.
La liste du groupe compte les propositions ouvertes des modules.

Restes mineurs : la participation ramenée se dit en deux temps (la mesure, puis
ce que le groupe demande), les lignes « habituelle » des réglages resserrées, le
sélecteur d'inertie se parcourt aux flèches (le cran actuel atteignable, jamais
choisi), la marque « seed a minima » porte le vrai nombre de votes.

Contrôles : C25 (ordre, dont la chaîne et le téléphone), C26 (titre), C27
(participation ramenée) ; C3, C17 (41 modules), C20 mis à jour.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
This commit is contained in:
Yvv
2026-10-31 05:35:02 +01:00
co-authored by Claude Opus 5.5
parent 3831ddb1bf
commit 785580c78f
31 changed files with 1480 additions and 136 deletions
+51 -11
View File
@@ -119,7 +119,9 @@ export const fr = {
'doc.lang.stale': 'traduction à revoir',
'doc.lang.missing': 'pas encore traduit',
'doc.seed': 'seed a minima',
'doc.seed.long': "Entré en vigueur sans vote, pour ne pas partir d'une page blanche. Il reste sous vote : 0 vote pour l'instant.",
'doc.seed.long': "Entré en vigueur sans vote, pour ne pas partir d'une page blanche. Il reste sous vote, comme tout texte.",
'doc.seed.votes.one': 'seed a minima · {n} vote',
'doc.seed.votes.other': 'seed a minima · {n} votes',
'doc.confirmed': 'confirmé par le vote',
'doc.adopted': 'adopté le {date}',
'doc.action.vote': 'Le vote',
@@ -161,6 +163,34 @@ export const fr = {
'section.formule': 'Formule de vote',
'section.inertie': 'Inertie',
'section.ordonnancement': 'Ordonnancement',
'module.title.name': 'Titre du document',
'module.order.name': 'Ordre des articles',
'module.order.named': 'Ordre des articles · {section}',
'module.order.count.one': '{n} article',
'module.order.count.other': '{n} articles',
'module.order.inforce': 'Ordre en vigueur',
'module.order.proposal': 'Ordre proposé',
'module.order.added.one': '{n} article entré depuis, placé à la fin',
'module.order.added.other': '{n} articles entrés depuis, placés à la fin',
'module.order.dropped.one': '{n} article sorti depuis',
'module.order.dropped.other': '{n} articles sortis depuis',
'module.order.same': "c'est l'ordre en vigueur",
'module.order.rule': "Un nouvel article se place à la fin de sa section. S'il arrive pendant le vote d'un ordre, il s'y ajoute à la fin, et les votes restent.",
'order.propose': 'Proposer un autre ordre',
'order.edit.label': 'Nouvel ordre des articles',
'order.edit.help': 'Clique un article, puis sa nouvelle place, ou utilise ses flèches. Au clavier : Entrée pour le choisir, flèches haut et bas pour le déplacer.',
'order.edit.up': 'Monter « {title} »',
'order.edit.down': 'Descendre « {title} »',
'order.edit.chosen': '« {title} » choisi : clique sa nouvelle place.',
'order.edit.moved': '« {title} » en place {n} sur {total}.',
'order.edit.submit': 'Proposer cet ordre',
'order.edit.unchanged': "C'est l'ordre en vigueur : déplace au moins un article.",
'order.edit.note': "Un ordre se vote à l'inertie {level}, comme un article : déplié, dans le panier, par la chaîne Ğ1 dans Monnaie libre.",
'order.submitted': 'Ordre proposé au vote.',
'title.propose': 'Proposer un autre titre',
'title.propose.label': 'Nouveau titre',
'title.propose.note': "Le titre du document se vote à l'inertie {level}. Ses traductions restent éditoriales : elles passeront « à revoir ».",
'title.submitted': 'Titre proposé au vote.',
'tally.short': '{for} pour · {against} contre',
'tally.required': 'Seuil : {n} voix pour',
@@ -205,6 +235,8 @@ export const fr = {
'vote.entered': '« {title} » est entré en vigueur.',
'vote.entered.remove': '« {title} » est retiré du texte en vigueur.',
'vote.entered.inertia': "L'inertie de « {title} » a changé.",
'vote.entered.order': 'Le nouvel ordre de « {section} » est entré en vigueur.',
'vote.entered.title': 'Le titre « {title} » est entré en vigueur.',
'vote.closed': 'Cette version ne se vote plus.',
'vote.fold': 'Le vote de « {title} »',
'vote.mine.none': "Tu n'as pas voté sur cette version.",
@@ -308,8 +340,8 @@ export const fr = {
'settings.usual.median.other': '{n} votants sur {electorate} ({pct}) : la médiane des {sample} propositions votées depuis un an.',
'settings.usual.reference.one': "{n} votant sur {electorate} ({pct}), deux fois C : la participation de référence, tant que le groupe n'a pas voté sur {min} propositions ({sample} pour l'instant).",
'settings.usual.reference.other': "{n} votants sur {electorate} ({pct}), deux fois C : la participation de référence, tant que le groupe n'a pas voté sur {min} propositions ({sample} pour l'instant).",
'settings.usual.bounded.one': "Ramenée entre {lo} et {hi} de l'électorat : les seuils se calculent sur {n} votant ({pct}).",
'settings.usual.bounded.other': "Ramenée entre {lo} et {hi} de l'électorat : les seuils se calculent sur {n} votants ({pct}).",
'settings.usual.bounded.one': "Ramenée entre {lo} et {hi} de l'électorat : le groupe demande ses voix pour comme si {n} personne votait ({pct}).",
'settings.usual.bounded.other': "Ramenée entre {lo} et {hi} de l'électorat : le groupe demande ses voix pour comme si {n} personnes votaient ({pct}).",
'settings.usual.when': 'Mesurée une fois par jour, la dernière fois le {date}.',
'settings.usual.never': 'Mesurée une fois par jour.',
'settings.levels': 'Les cinq crans',
@@ -317,12 +349,12 @@ export const fr = {
'settings.col.share': 'Part exigée',
'settings.col.required': 'Voix pour',
'settings.current': 'cet article',
'settings.share.note.one': "Part exigée : la part de « pour » au-delà de C quand {n} personne vote, comme d'habitude.",
'settings.share.note.other': "Part exigée : la part de « pour » au-delà de C quand {n} personnes votent, comme d'habitude.",
'settings.required.version.one': 'Voix pour : celles exigées à la participation de cette version, {n} votant.',
'settings.required.version.other': 'Voix pour : celles exigées à la participation de cette version, {n} votants.',
'settings.required.usual.one': 'Voix pour : celles exigées à la participation habituelle, {n} votant.',
'settings.required.usual.other': 'Voix pour : celles exigées à la participation habituelle, {n} votants.',
'settings.share.note.one': "Part exigée : les « pour » demandés au-delà de C, à {n} votant comme d'habitude.",
'settings.share.note.other': "Part exigée : les « pour » demandés au-delà de C, à {n} votants comme d'habitude.",
'settings.required.version.one': 'Voix pour : à {n} votant, la participation de cette version.',
'settings.required.version.other': 'Voix pour : à {n} votants, la participation de cette version.',
'settings.required.usual.one': "Voix pour : à {n} votant, comme d'habitude.",
'settings.required.usual.other': "Voix pour : à {n} votants, comme d'habitude.",
'settings.reading': "À chaque cran, le groupe demande sa part de « pour » au-delà de C quand il vote comme d'habitude ; plus il y a de votants, plus elle se rapproche de M. Rien ne passe sous C voix pour.",
'history.title': 'Corrections',
@@ -355,8 +387,8 @@ export const fr = {
'propose.mode.replace': 'Modifier ce texte',
'propose.mode.remove': 'Retirer cet article',
'propose.mode.new': 'Nouvel article',
'propose.after': 'Placer après',
'propose.after.end': 'à la fin',
'propose.section': 'Dans la section',
'propose.section.note': 'Le nouvel article se place à la fin de la section ; son ordre se vote à part, en fin de section.',
'propose.title': 'Titre',
'propose.body': 'Texte',
'propose.remove.note': 'La proposition de retrait se vote comme une autre ; si elle passe, l’article sort du texte en vigueur.',
@@ -486,6 +518,14 @@ export const fr = {
'error.author': "Ce compte n'est pas une adresse Ğ1.",
'error.not_votable': 'Cette version ne se vote plus.',
'error.members_only': 'Seuls les membres de ce groupe votent ici.',
'error.module': "Un module se propose à sa place : le titre en tête du document, l'ordre en fin de section.",
'error.order': 'Cet ordre doit reprendre chaque article de la section, une seule fois : recharge la page, puis recommence.',
'error.same_order': "C'est déjà l'ordre en vigueur.",
'error.order_fixed': 'Un ordre ne se corrige pas : propose un autre ordre.',
'error.not_an_order': "Ce module n'est pas l'ordre d'une section.",
'error.not_a_title': "Ce module n'est pas le titre du document.",
'error.same_title': "C'est déjà le titre en vigueur.",
'error.section': "Cette section n'existe pas dans ce document.",
'error.retry': 'Réessayer',
'common.cancel': 'Annuler',