Skip to content
236 changes: 217 additions & 19 deletions frontend/taskdeck-web/src/composables/useReviewProposals.ts

Large diffs are not rendered by default.

25 changes: 25 additions & 0 deletions frontend/taskdeck-web/src/locales/en/review.ts
Original file line number Diff line number Diff line change
Expand Up @@ -85,11 +85,25 @@ export default {
// successful read. Translators: keep it in the same register as `body`, and
// keep it a statement of the CURRENT state — the surface does not promise that
// any particular proposal arrived, only that the queue is trustworthy again.
//
// `refused.body` is the OTHER failure (#2214 item 2), and it deliberately
// says something `degraded.body` does not. Degraded means "retrying"; refused
// means the server keeps ANSWERING and rejecting the query — a
// `?boardId=not-a-guid` in the address bar 400s every tick — so waiting for a
// recovery is exactly the wrong thing to do. Translators: all three clauses
// are load-bearing. The queue shown is the last one the server CONFIRMED;
// the refusal is not a temporary failure; and the reviewer has two things to
// try. It shares the visible slot with `degraded.body` and takes precedence
// over it, and it is also the text of a mounted sr-only live region in each
// skin, so keep it speakable as one sentence run.
queue: {
degraded: {
body: 'This review queue may be out of date. Showing the last available proposals while Taskdeck retries.',
recovered: 'This review queue is up to date again. Showing current proposals.',
},
refused: {
body: 'This review queue has stopped updating. The server is refusing the refresh rather than failing temporarily, so these are the last proposals it confirmed. Reload the page, or check the board filter in the address bar.',
},
},

batchExecute: {
Expand Down Expand Up @@ -635,10 +649,21 @@ export default {
body: 'Someone else decided, withdrew, or deferred it while you were reviewing it. Nothing was decided here, and no other proposal was opened in its place. Reload the queue to check.',
return: 'Reload the queue',
},
// Two different truths, deliberately not sharing a sentence (#2214).
// `title`/`body` describe a proposal that exists or existed and that this
// reviewer cannot see now (403), or that is gone (404) — a state a later
// read can legitimately reverse. `malformedTitle`/`malformedBody` describe
// an id the by-id route refuses to bind at all (400): the address never
// named a proposal, so there is nothing to wait for and retrying is
// pointless. Translators: keep that distinction. The malformed copy must
// not promise a recovery, and must point at the link rather than at the
// proposal. The eyebrow and the return control are shared by both.
unavailable: {
eyebrow: 'Requested proposal',
title: 'This proposal is unavailable.',
body: 'Proposal {id} is no longer available to review. It may have been applied, archived, or removed.',
malformedTitle: 'This link is not a valid proposal link.',
malformedBody: 'The address asks for {id}, which is not a proposal id, so there is nothing to open here. Retrying will not help. Go back to Review and pick a proposal from the queue.',
return: 'Back to Review',
},
},
Expand Down
5 changes: 5 additions & 0 deletions frontend/taskdeck-web/src/locales/es/review.ts
Original file line number Diff line number Diff line change
Expand Up @@ -46,6 +46,9 @@ export default {
body: 'Es posible que esta cola de revisión no esté actualizada. Se muestran las últimas propuestas disponibles mientras Taskdeck lo vuelve a intentar.',
recovered: 'Esta cola de revisión vuelve a estar actualizada. Se muestran las propuestas actuales.',
},
refused: {
body: 'Esta cola de revisión ha dejado de actualizarse. El servidor está rechazando la actualización en lugar de fallar temporalmente, así que estas son las últimas propuestas que confirmó. Recarga la página o revisa el filtro de tablero en la barra de direcciones.',
},
},

// GH-1307 -- traducción automática (machine-translated), pendiente de revisión nativa.
Expand Down Expand Up @@ -530,6 +533,8 @@ export default {
eyebrow: 'Propuesta solicitada',
title: 'Esta propuesta no esta disponible.',
body: 'La propuesta {id} ya no esta disponible para revisar. Puede haberse aplicado, archivado o eliminado.',
malformedTitle: 'Este enlace no es un enlace de propuesta valido.',
malformedBody: 'La direccion pide {id}, que no es un id de propuesta: no hay nada que abrir y reintentarlo no sirve. Vuelve a Revision y elige una propuesta de la cola.',
return: 'Volver a Revision',
},
},
Expand Down
5 changes: 5 additions & 0 deletions frontend/taskdeck-web/src/locales/it/review.ts
Original file line number Diff line number Diff line change
Expand Up @@ -47,6 +47,9 @@ export default {
body: 'Questa coda di revisione potrebbe non essere aggiornata. Vengono mostrate le ultime proposte disponibili mentre Taskdeck riprova.',
recovered: 'Questa coda di revisione è di nuovo aggiornata. Vengono mostrate le proposte correnti.',
},
refused: {
body: 'Questa coda di revisione ha smesso di aggiornarsi. Il server sta rifiutando la richiesta di aggiornamento invece di fallire temporaneamente, quindi queste sono le ultime proposte che ha confermato. Ricarica la pagina oppure controlla il filtro bacheca nella barra degli indirizzi.',
},
},

// GH-1307 -- traduzione automatica (machine-translated), in attesa di revisione madrelingua.
Expand Down Expand Up @@ -532,6 +535,8 @@ export default {
eyebrow: 'Proposta richiesta',
title: 'Questa proposta non e disponibile.',
body: 'La proposta {id} non e piu disponibile per la revisione. Potrebbe essere stata applicata, archiviata o rimossa.',
malformedTitle: 'Questo collegamento non e un collegamento valido a una proposta.',
malformedBody: 'La pagina richiede {id}, che non e un id di proposta: non esiste nulla da aprire e riprovare non serve. Torna alla revisione e scegli una proposta dalla coda.',
return: 'Torna alla revisione',
},
},
Expand Down
Loading
Loading