COPY . . used to bring the in-repo catalogs; the builder now fetches the
pinned craft-i18n commit and builds with CRAFT_I18N_DIR and
CRAFT_I18N_REQUIRED=1, so the image is not English only.
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
The 34 crates/ui-egui/src/i18n/*.tsv, LICENSE-translations.txt and
catalog.rs now live in craft-i18n, as does the credit for each catalog;
ATTRIBUTION has one row pointing there. build.rs stops deflating catalogs
and the Dockerfile stops copying the deleted licence.
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
A multi-stage Dockerfile builds photocraft-web with Trunk and serves dist/web from an
unprivileged nginx on :8080, with /healthz, precompressed gzip, the wasm MIME type and
immutable hashed assets. Rust and Trunk follow the release workflow, and the
PHOTOCRAFT_BUILD_SHA/DATE build args stamp About. Documented in packaging/web/README.md;
not built in CI.
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>