filmcraft/docs
seif cfe0c751e9 #395: Arabic and Hebrew in the interface: fallback fonts, captions in reading order
The interface had no face for Arabic or Hebrew, so caption text, track and media names showed
missing-glyph boxes in the Text panel and on the timeline while the Program monitor drew them.
crates/ui-egui/src/rtl.rs adds the craft-fonts Arab / Hebr faces, else one installed face per
script (Noto Sans Arabic, SF Arabic, Segoe UI...), as the last fallbacks of every UI font family,
as cjk.rs does for Chinese.

egui already shapes each font run with harfrust, so the letters join, but it lays runs out left to
right with no bidi pass and multi-word Arabic read backwards. rtl::Lines lays captions out in
reading order: lines are broken on the logical text as egui wraps it, each line is reordered with
unicode-bidi (UAX #9, as crates/text does for titles) and every right-to-left word is its own
layout section for egui's shaper. Caption blocks on the timeline and the Text panel caption list
use it; a caption being edited keeps egui's logical order, since TextEdit places the caret by
character index. Left-to-right text is laid out exactly as before.
2026-10-11 13:14:30 -06:00
..
adr Linux: NVDEC hardware decoding for H.264 and HEVC 2026-10-09 23:17:11 -07:00
brand Licensing: standard LICENSE files, NOTICE, ArtCraft brand terms 2026-10-04 10:05:12 -04:00
images README: new hero — Apollo 11 documentary edit (public domain) 2026-10-01 11:17:08 -04:00
agents.md Merge pull request #595 from MarekSpodBiedry/issue-476 2026-10-10 14:52:19 -04:00
architecture.md Merge pull request #825 from vangel76/gap-aac-audio 2026-10-10 19:22:45 -04:00
captions.md #395: Arabic and Hebrew in the interface: fallback fonts, captions in reading order 2026-10-11 13:14:30 -06:00
codec-parity.md Revert #783 (Linux H.265 through NVENC): intermittent heap corruption in the CLI 2026-10-10 19:01:15 -04:00
contributing.md #395: Arabic and Hebrew in the interface: fallback fonts, captions in reading order 2026-10-11 13:14:30 -06:00
contributors.md About: contributor and model credits compiled in (grab bag + table, self-submitted names) (#215) 2026-10-07 21:16:52 -04:00
control-protocol.md UI.6: refresh shared UI integration against current main 2026-10-10 18:51:04 -06:00
file-format-parity.md Merge pull request #825 from vangel76/gap-aac-audio 2026-10-10 19:22:45 -04:00
gaps.md #395: Arabic and Hebrew in the interface: fallback fonts, captions in reading order 2026-10-11 13:14:30 -06:00
graphics.md program monitor: drag a rectangle's corners round (#744) 2026-10-10 22:46:27 +03:00
hardware-parity.md Progress docs: target-app parity, gaps, alpha gate, readiness by audience (#700) 2026-10-10 14:09:14 -04:00
keyboard.md M12.7: Project panel and Media Browser parity 2026-10-03 02:14:31 -04:00
localization-parity.md #395: Arabic and Hebrew in the interface: fallback fonts, captions in reading order 2026-10-11 13:14:30 -06:00
monitors.md monitors: the wheel zooms about the pointer, the middle button pans (#807) 2026-10-11 01:55:26 +03:00
performance.md Merge origin/main into #421; GPU export opt-in, wgpu error handler, drop panicked renderers 2026-10-10 07:21:38 -04:00
project-files.md #266: quitting with unsaved changes asks to save first 2026-10-10 21:33:45 +02:00
releasing.md Release prep: 0.6.0 and a Linux riscv64 release build (#830) 2026-10-10 19:28:41 -04:00
roadmap.md Progress docs: target-app parity, gaps, alpha gate, readiness by audience (#700) 2026-10-10 14:09:14 -04:00
target-app-parity.md Revert #783 (Linux H.265 through NVENC): intermittent heap corruption in the CLI 2026-10-10 19:01:15 -04:00
testing.md Revert #783 (Linux H.265 through NVENC): intermittent heap corruption in the CLI 2026-10-10 19:01:15 -04:00
transcripts.md transcripts: disabled, not failing, in builds without speech-to-text (#89, #97, #98) 2026-10-07 09:14:05 -05:00
ui-parity.md #577: Effect Controls shows a selected transition's own timeline 2026-10-11 00:08:40 +02:00
web.md Crash and blank-screen fixes (desktop + web) 2026-10-04 00:26:19 -04:00