pdfcraft/crates
feraremag2680 513a1ecc3a
i18n: let the layers below hand their sentences over, so they can be translated (#478)
* i18n: let the layers below hand their sentences over, so they can be translated

The accessibility findings, the PDF/A problems, the signature details, the
page-range mistakes and the edit labels were English in all ten languages,
because matching their wording from the UI with a tl! literal would break
silently whenever the engine changed it.

So each layer now hands the wording over instead, apart from the document's
own words: a WORDINGS list of every sentence it can say, with holes in it, and
said(&words), which looks the wording up through the closure it is given and
fills the holes in a single pass. in_english changes nothing, for the CLI and
the tests; the UI passes &i18n::words, a catalog lookup. A wording with no
entry comes back as it stands, which is the English, so the nine catalogs this
does not touch read exactly as before.

a11y::report_html takes a language tag and a words closure, so a saved report
reads the way the panel read, down to its lang attribute. print::PrintError
gained a variant per thing a person can be wrong about, with the numbers apart
from the words; faults rather than mistakes keep their own text.

Spanish translates all of it (107 entries). spanish_covers_what_the_engine_says
requires an entry per wording in the eight lists and
spanish_keeps_the_holes_in_what_the_engine_says requires the holes to survive
the translation, so the catalog cannot fall behind the engine unnoticed.

No new tl! literal, so the Chinese, French and Russian UI-literal gates are
unaffected.

Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>

* Sign tests from #1099: compare against the &'static str kinds

* Camera tests: undo returns a Label now

---------

Co-authored-by: Fernando Areán <soporte@codebit.es>
Co-authored-by: Claude Opus 5 <noreply@anthropic.com>
Co-authored-by: Brandon Thomas <echelon@gmail.com>
2026-10-11 15:45:51 -04:00
..
a11y i18n: let the layers below hand their sentences over, so they can be translated (#478) 2026-10-11 15:45:51 -04:00
annot Comments: line breaks saved as CR show in comment text (#1113) 2026-10-11 14:46:05 -04:00
audit Add faux-redaction audit (paint-order and colour-aware, fail-closed) (#110) 2026-10-11 14:32:33 -04:00
automation i18n: let the layers below hand their sentences over, so they can be translated (#478) 2026-10-11 15:45:51 -04:00
compare Rename PrintCraft to PdfCraft (#174) 2026-10-07 16:03:57 -04:00
content Fix #155: edit text across content stream pieces (#628) 2026-10-09 17:57:02 -04:00
cos Issue #995: unlock a restricted document with its permissions password (#1127) 2026-10-11 15:18:01 -04:00
create Security: fix 10 verified audit findings in redaction, signature validation, and untrusted-input handling (#1099) 2026-10-11 15:09:39 -04:00
crypt Issue #995: unlock a restricted document with its permissions password (#1127) 2026-10-11 15:18:01 -04:00
edit Add faux-redaction audit (paint-order and colour-aware, fail-closed) (#110) 2026-10-11 14:32:33 -04:00
engine i18n: let the layers below hand their sentences over, so they can be translated (#478) 2026-10-11 15:45:51 -04:00
export Fix #526: keep text colour in Word, HTML and RTF export (#547) 2026-10-09 10:49:21 -04:00
filters Rename PrintCraft to PdfCraft (#174) 2026-10-07 16:03:57 -04:00
fonts Typed signatures draw Cyrillic and Greek letters (#846) (#963) 2026-10-11 13:20:11 -04:00
forms Forms: keep tiles and render unbaked field values during page re-render (#636) 2026-10-11 15:15:48 -04:00
geom M10: Enhance camera image finds the document's edges; rotate, crop or organize after Enhance page (part 3 of #1008) (#1027) 2026-10-11 12:31:23 -04:00
js M12: XFA script time limits start when the engine is ready (#1081) 2026-10-11 11:58:28 -04:00
measure Issue #432: global Units preference (mm, cm, in, pt), defaulting to the system region (#463) 2026-10-11 15:33:54 -04:00
model M2: pages with /UserUnit are shown at their size in points, as in Acrobat (#722) 2026-10-10 06:19:31 -04:00
ocr OCR: a scanned euro sign reads as €, not E (#796) 2026-10-10 15:08:04 -04:00
optimize M11: strip redundant ASCII stream wrappers during optimization (#989) 2026-10-11 13:21:20 -04:00
organize M10: stream Create Multiple sources without a fixed file-count cutoff (#978) 2026-10-11 13:20:58 -04:00
platform fix(theme): complete Linux System appearance tracking (#1017) 2026-10-11 15:23:49 -04:00
preflight i18n: let the layers below hand their sentences over, so they can be translated (#478) 2026-10-11 15:45:51 -04:00
print i18n: let the layers below hand their sentences over, so they can be translated (#478) 2026-10-11 15:45:51 -04:00
redact Security: fix 10 verified audit findings in redaction, signature validation, and untrusted-input handling (#1099) 2026-10-11 15:09:39 -04:00
render Comments: line breaks saved as CR show in comment text (#1113) 2026-10-11 14:46:05 -04:00
sign i18n: let the layers below hand their sentences over, so they can be translated (#478) 2026-10-11 15:45:51 -04:00
ui-egui i18n: let the layers below hand their sentences over, so they can be translated (#478) 2026-10-11 15:45:51 -04:00
xfa Security: fix 10 verified audit findings in redaction, signature validation, and untrusted-input handling (#1099) 2026-10-11 15:09:39 -04:00
xfdf Security: fix 10 verified audit findings in redaction, signature validation, and untrusted-input handling (#1099) 2026-10-11 15:09:39 -04:00