From 112b3ea52ff56f01056f81055c847c1a5d586084 Mon Sep 17 00:00:00 2001 From: John Coffey Date: Thu, 3 Sep 2026 14:22:24 -0700 Subject: [PATCH] Translate the rule sentences into Spanish #261 rebuilt the Sieve rule summaries and the recurrence descriptions as whole sentences with placeholders, so that a translator can move the parts rather than being handed " and " on its own. This is the Spanish half of that. 32 strings and 9 plural forms. The ordinals are words -- there is no suffix to append here, which was the point -- and the day and item lists are joined by Intl.ListFormat rather than a translated separator. --- web/src/locales/es.ts | 46 +++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 46 insertions(+) diff --git a/web/src/locales/es.ts b/web/src/locales/es.ts index a59b1d9..3ade7b2 100644 --- a/web/src/locales/es.ts +++ b/web/src/locales/es.ts @@ -1255,8 +1255,54 @@ export const catalog: Catalog = { "This message was sent automatically, so no read receipt is offered.": "Este mensaje se envió automáticamente, así que no se ofrece confirmación de lectura.", "This server will not hold a message longer than {span}.": "Este servidor no retiene un mensaje más de {span}.", "Upload failed": "Error al subir", + // ── Third pass ────────────────────────────────────────────────────── + // Sentences that lib/ and store/ were building in English, and the two + // swipe labels that reach t() through a variable and so were invisible + // to a scan for t("literal"). See #259. + "Every {n} {frequency}": "Cada {n} {frequency}", + "Monthly": "Mensualmente", + "Monthly on day {days}": "Mensualmente el día {days}", + "Monthly on the {ordinal} {weekday}": "Mensualmente el {ordinal} {weekday}", + "Monthly on {weekday}": "Mensualmente el {weekday}", + "Weekly": "Semanalmente", + "Weekly on {days}": "Semanalmente los {days}", + "add {flag}": "añadir {flag}", + "always": "siempre", + "body contains \"{value}\"": "el cuerpo contiene \"{value}\"", + "body does not contain \"{value}\"": "el cuerpo no contiene \"{value}\"", + "delete it": "eliminarlo", + "fifth": "quinto", + "first": "primer", + "forward to {address}": "reenviar a {address}", + "fourth": "cuarto", + "keep it": "conservarlo", + "last": "último", + "mark it read": "marcarlo como leído", + "move to {folder}": "mover a {folder}", + "reject it": "rechazarlo", + "remove {flag}": "quitar {flag}", + "second": "segundo", + "size is over {n} KB": "el tamaño supera {n} KB", + "size is under {n} KB": "el tamaño es inferior a {n} KB", + "star it": "destacarlo", + "stop": "detener", + "third": "tercer", + "{header} address {op} \"{value}\"": "la dirección de {header} {op} \"{value}\"", + "{header} {op} \"{value}\"": "{header} {op} \"{value}\"", + "{rule}, until {date}": "{rule}, hasta el {date}", + "{tests} → {actions}": "{tests} → {actions}", }, plurals: { + // ── Third pass ───────────────────────────────────────────────────── + "Every {n} days": { one: "Cada día", other: "Cada {n} días" }, + "Every {n} months": { one: "Cada mes", other: "Cada {n} meses" }, + "Every {n} months on day {days}": { one: "Cada mes el día {days}", other: "Cada {n} meses el día {days}" }, + "Every {n} months on the {ordinal} {weekday}": { one: "Cada mes el {ordinal} {weekday}", other: "Cada {n} meses el {ordinal} {weekday}" }, + "Every {n} months on {weekday}": { one: "Cada mes el {weekday}", other: "Cada {n} meses el {weekday}" }, + "Every {n} weeks": { one: "Cada semana", other: "Cada {n} semanas" }, + "Every {n} weeks on {days}": { one: "Cada semana los {days}", other: "Cada {n} semanas los {days}" }, + "Every {n} years": { one: "Cada año", other: "Cada {n} años" }, + "{rule}, {n} times": { one: "{rule}, {n} vez", other: "{rule}, {n} veces" }, // ── Third pass ───────────────────────────────────────────────────── "Move {n} messages to Trash?": { one: "¿Mover {n} mensaje a la Papelera?", other: "¿Mover {n} mensajes a la Papelera?" }, "{n} days": { one: "{n} día", other: "{n} días" },