aboutsummaryrefslogtreecommitdiffstats
path: root/translations
diff options
context:
space:
mode:
authorDanilo M. <danix@danix.xyz>2026-08-27 13:05:17 +0200
committerDanilo M. <danix@danix.xyz>2026-08-27 13:05:17 +0200
commit5570d0e7495a42a90acf951d396c9185b0319eb9 (patch)
tree4052c9060b6ade33577c9bcb285565a1477bd3eb /translations
parent12e841b8e2c4c225ea79de87dc7bb50f0404ee69 (diff)
downloadqtmaildir-5570d0e7495a42a90acf951d396c9185b0319eb9.tar.gz
qtmaildir-5570d0e7495a42a90acf951d396c9185b0319eb9.zip
feat: forward an HTML message with its formatting
Item 171. A forward carried only the plain-text version of the original, so formatting was lost; and an original with no plain-text part at all (30 of 342 sampled inbox messages, ~9%) forwarded as an empty quote with its content silently gone. A forward now sends ONE part chosen by the Send-as-HTML toggle: the original's markup when on, the text quote when off. Not a multipart/alternative, at the user's decision: a forward's shape is already decided by that toggle, and sending both hands the choice to the recipient's client. The toggle is honoured even for an HTML-only original, which then forwards as a text fallback. HtmlSanitiser strips remote content from the forwarded markup, checked by default with a per-forward opt-out. This is the security-critical part: the markup leaves this process and is rendered by the recipient's client, where none of MessageView's protections apply, so forwarding a tracking pixel forwards the tracking. It is an ALLOW-LIST, unlike HtmlBuilder::namespaceCids(), because a missed rewrite is a broken image while a missed strip is a beacon reaching the recipient. An HTML forward does not seed a text quote into the editor. The first build did, then subtracted it when building the HTML part, so the user could edit a quote whose edits were discarded; what the composer shows must be what gets sent. The forwarded message appears in a read-only pane beside the editor instead, a QSplitter at 60/40 with a toggle in the Format menu. A plain forward is unchanged. ComposeContextBuilder::quoteBody() renders htmlBody down to text when there is no plain part, so the plain path never emits an empty quote. Design in docs/superpowers/specs/2026-08-27-forward-html-design.md. Two tests repaired for the splitter: the 60/40 assertion reads stretch factors rather than pixels, since the offscreen platform gives the splitter no width and reports 49/49 whatever the code asks; and theComposerSplitsItsToolbarByScope looked for the body directly in the composer's column. Not yet hand-tested in this arrangement. Co-Authored-By: Claude Opus 5 <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_01AtUzfNjMD8fiYfamDd3ywW
Diffstat (limited to 'translations')
-rw-r--r--translations/qtmaildir_it_IT.ts26
1 files changed, 23 insertions, 3 deletions
diff --git a/translations/qtmaildir_it_IT.ts b/translations/qtmaildir_it_IT.ts
index 85b978f..040af5c 100644
--- a/translations/qtmaildir_it_IT.ts
+++ b/translations/qtmaildir_it_IT.ts
@@ -8,6 +8,26 @@
<translation>Componi[*]</translation>
</message>
<message>
+ <source>Forwarded message, sent as it arrived:</source>
+ <translation>Messaggio inoltrato, inviato come è arrivato:</translation>
+ </message>
+ <message>
+ <source>Forwarded message</source>
+ <translation>Messaggio inoltrato</translation>
+ </message>
+ <message>
+ <source>Shows the message being forwarded beside what you are writing.</source>
+ <translation>Mostra il messaggio che stai inoltrando accanto a quello che stai scrivendo.</translation>
+ </message>
+ <message>
+ <source>Strip remote content from the forwarded message</source>
+ <translation>Rimuovi i contenuti remoti dal messaggio inoltrato</translation>
+ </message>
+ <message>
+ <source>Images and styles loaded from the internet are removed, so the sender of the original cannot tell that you forwarded it. Uncheck only for a sender you trust.</source>
+ <translation>Le immagini e gli stili caricati da internet vengono rimossi, così il mittente dell&apos;originale non può sapere che lo hai inoltrato. Togli la spunta solo per un mittente di cui ti fidi.</translation>
+ </message>
+ <message>
<source>The forwarded attachments could not be extracted.</source>
<translation>Non è stato possibile estrarre gli allegati inoltrati.</translation>
</message>
@@ -1629,11 +1649,11 @@ Il messaggio È stato inviato. Non inviarlo di nuovo.</translation>
</message>
<message>
<source>Changes made here that a sync has not yet carried to the mail store. This list is a snapshot taken when it was opened.</source>
- <translation>Modifiche fatte qui che una sincronizzazione non ha ancora portato all'archivio di posta. Questo elenco è un'istantanea presa al momento dell'apertura.</translation>
+ <translation>Modifiche fatte qui che una sincronizzazione non ha ancora portato all&apos;archivio di posta. Questo elenco è un&apos;istantanea presa al momento dell&apos;apertura.</translation>
</message>
<message>
<source>(no longer in the index)</source>
- <translation>(non più nell'indice)</translation>
+ <translation>(non più nell&apos;indice)</translation>
</message>
<message numerus="yes">
<source>%1 (whole thread, %n message(s))</source>
@@ -1644,7 +1664,7 @@ Il messaggio È stato inviato. Non inviarlo di nuovo.</translation>
</message>
<message>
<source>Nothing is waiting to be synced.</source>
- <translation>Non c'è nulla in attesa di sincronizzazione.</translation>
+ <translation>Non c&apos;è nulla in attesa di sincronizzazione.</translation>
</message>
</context>
<context>