mirror of
https://github.com/storytold/photocraft.git
synced 2026-10-24 09:57:08 -06:00
* Mirror the shell for right-to-left UI languages (DIST-220-4) Arabic, Hebrew, Persian and Urdu read right to left, but the window's chrome was hard-wired left to right, so an RTL catalog (#2505) would put Arabic labels into a left-to-right layout. The reading direction now follows the language code (i18n::dir_for_code: ar, ckb, dv, fa, he, ps, sd, ug, ur, yi), so a catalog needs no extra setting and the LANGUAGES rows are unchanged. In a right-to-left language the shell mirrors: - the menu bar starts at the right with File; menus open under their title's right edge, and the arrow keys step through them in screen order - the toolbox docks on the right, the panel dock and its rail on the left; tool flyouts open towards the canvas and their corner marks and the header chevrons follow - the title, options and status bars read from the right, with the workspace controls and the Fit/progress group at the left end; the title and window-drag gap use the free span between them New module direction.rs holds the helpers (start_panel/end_panel, row/trailing layouts, horizontal_centered, the popup alignment). Left to right, every change lays out as before. No RTL catalog ships yet, so PHOTOCRAFT_UI_DIRECTION=rtl forces the mirrored layout for review (read once, native only). Panel interiors, dialogs, menu rows, submenus and document tabs stay left to right, and egui still draws UI labels without Arabic shaping or bidi reordering; docs/localization.md and the parity docs say so. Adds Lucide's chevron-left (the status bar's info menu arrow points left in RTL; Timeline's Previous frame button asked for it too and drew the fallback square). Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com> * Localization docs: egui shapes Arabic words; what's missing is a font and bidi word order egui 0.36 shapes right-to-left runs with HarfRust, so letters join within a word. The gaps are an Arabic fallback font in the UI and paragraph bidi (words are placed left to right; emilk/egui#8576, #8577). Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com> --------- Co-authored-by: MathMattTech <334629259+MathMattTech@users.noreply.github.com> Co-authored-by: Claude Opus 5.5 <noreply@anthropic.com>
77 lines
2.6 KiB
TOML
77 lines
2.6 KiB
TOML
# Scorecard checklist: distribution (#220) and what ships today (.github/workflows/release.yml).
|
|
# Statuses must be true on main. Verified against 4b53f62 on 2026-10-05.
|
|
area = "distribution"
|
|
title = "Distribution"
|
|
order = 8
|
|
|
|
[[item]]
|
|
id = "DIST-1"
|
|
target = "macOS universal build (aarch64 + x86_64), signed and notarized"
|
|
status = "done"
|
|
note = "release.yml:66,75,93 (macos-15); 0.2.0 shipped notarized"
|
|
|
|
[[item]]
|
|
id = "DIST-2"
|
|
target = "Windows x64 and x86 builds"
|
|
status = "partial"
|
|
note = "release.yml:113-114; signing skipped with a warning until the signing material exists"
|
|
|
|
[[item]]
|
|
id = "DIST-3"
|
|
target = "Linux x86_64 and aarch64: AppImage, deb, rpm, tar.gz"
|
|
status = "done"
|
|
note = "release.yml:162-163,186"
|
|
|
|
[[item]]
|
|
id = "DIST-4"
|
|
target = "Flatpak single-file bundles, x86_64 and aarch64"
|
|
status = "done"
|
|
note = "release.yml:204-216 (#163)"
|
|
|
|
[[item]]
|
|
id = "DIST-5"
|
|
target = "Web build (wasm32, trunk)"
|
|
status = "done"
|
|
note = "release.yml:312"
|
|
|
|
[[item]]
|
|
id = "DIST-6"
|
|
target = "FreeBSD 14 x86_64 tar.gz (/usr/local tree) built in a FreeBSD VM"
|
|
status = "partial"
|
|
note = "release.yml:242-283 (freebsd job) + packaging/freebsd/package.sh; layout checked with --dry-run, not yet produced by a release run"
|
|
|
|
[[item]]
|
|
id = "DIST-220-1"
|
|
target = "Help > Check for Updates plus an opt-out periodic release-feed check on all desktops"
|
|
status = "missing"
|
|
issue = 220
|
|
note = "No update check in crates"
|
|
|
|
[[item]]
|
|
id = "DIST-220-2"
|
|
target = "Windows ARM64 (aarch64-pc-windows-msvc) in the release matrix, signed like x64"
|
|
status = "done"
|
|
issue = 220
|
|
note = "release.yml has { arch: arm64, target: aarch64-pc-windows-msvc } in the Windows matrix, and .github/workflows/windows-arm64.yml packages that MSI, installs it on a Windows 11 ARM64 runner, checks the installed binaries are ARM64 and runs the CLI natively before uninstalling. Signing takes the same path as x64: the secrets are optional and a missing one produces an unsigned artifact and a warning (see DIST-2)"
|
|
|
|
[[item]]
|
|
id = "DIST-220-3"
|
|
target = "In-app bug report with reviewable diagnostics that opens a prefilled issue"
|
|
status = "missing"
|
|
issue = 220
|
|
note = "No bug report dialog in crates"
|
|
|
|
[[item]]
|
|
id = "DIST-220-4"
|
|
target = "Translation coverage per language reported by xtask; RTL layout for Arabic and Hebrew"
|
|
status = "partial"
|
|
issue = 220
|
|
note = "`cargo xtask i18n-coverage` reports per-language coverage (#427); RTL languages mirror the shell (`direction.rs`), not yet panel interiors or dialogs"
|
|
|
|
[[item]]
|
|
id = "DIST-220-5"
|
|
target = "Linux AppImage x86_64 + aarch64 ship; Flatpak kept; Flathub later (#173)"
|
|
status = "partial"
|
|
issue = 220
|
|
note = "AppImage and Flatpak ship (release.yml:162-216); Flathub not done"
|