diff --git a/AGENTS.md b/AGENTS.md index 7a53232..5138081 100644 --- a/AGENTS.md +++ b/AGENTS.md @@ -190,7 +190,7 @@ Ely GPUI Component. A component library for GPUI, in light and dark. - A pane the window's blur shows through is `shell::Vibrancy`, filled with the palette's `glass`, in a window opened `WindowBackgroundAppearance::Blurred`: vibrancy on macOS, acrylic on Windows. gpui 0.2.2 has no Mica. - The chart's hues go by `theme::HUE_NAMES`, for an event's color and a label's alike. - Text whose every character counts, encoded data and keys, goes through `typography::literal`: JetBrains Mono draws `==` and `->` as ligatures (`devtools::Encoder`). -- Messages go through `i18n::I18n`, a global the app sets: `cx.global::().text(key, args)` fills each `{name}`. Every catalog holds the first one's keys; a missing key, argument or catalog fails. A right-to-left locale mirrors a stack with `Direction::row` and sets its text with `Direction::align`; CoreText orders mixed Hebrew and Latin runs on macOS, but gpui sets no paragraph direction, so a line takes its first strong character's: `text` leads a right-to-left message with U+200F, and `Locale::number` a right-to-left minus with U+200E, as CLDR does. gpui 0.2.2 wraps shaped glyphs in the order they are drawn, so a right-to-left line that wraps comes out garbled: right-to-left text stays on one line, an `Ellipsis`, which cuts by characters and sits by its text's alignment. +- Messages go through `i18n::I18n`, a global the app sets: `cx.global::().text(key, args)` fills each `{name}`. Every catalog holds the first one's keys; a missing key, argument or catalog fails. A right-to-left locale mirrors a stack with `Direction::row` and sets its text with `Direction::align`; CoreText orders mixed Hebrew and Latin runs on macOS, but gpui sets no paragraph direction, so a line takes its first strong character's: `text` leads a right-to-left message with U+200F, so its words suit labels, not a field's value, and `Locale::number` a right-to-left minus with U+200E, as CLDR does. gpui 0.2.2 wraps shaped glyphs in the order they are drawn, so a right-to-left line that wraps comes out garbled: right-to-left text stays on one line, an `Ellipsis`, which cuts by characters and sits by its text's alignment. ## Decisions diff --git a/TASKS.md b/TASKS.md index e0aac72..dbde592 100644 --- a/TASKS.md +++ b/TASKS.md @@ -135,7 +135,7 @@ Per-component lines live in `tasks/`. Tags there: - [x] T39a Theme · Editing — `tasks/ch31-43.md` - [x] T39b Theme · Importing — `tasks/ch31-43.md` - [x] T39c Theme · Platform — `tasks/ch31-43.md` -- [ ] T40a i18n +- [x] T40a i18n — `tasks/ch31-43.md` - [ ] T40b a11y - [ ] T41 Maps - [ ] T42 Misc @@ -428,3 +428,6 @@ Per-component lines live in `tasks/`. Tags there: | T39c | 1 | FAIL | Windows caption buttons took their row's height; a long Windows title pushed the buttons past the bar | | T39c | 2 | FAIL | an untitled Windows bar lost its spacer; a centered title ran under the Linux buttons; caption buttons ignored the window's rem | | T39c | 3 | PASS | | +| T40a | 1 | FAIL | a wrapped right-to-left line came out garbled, since gpui wraps glyphs in drawn order; a Hebrew minus sat right of its digits; two dates claimed CLDR's short year; two catalog guards untested | +| T40a | 2 | FAIL | a Hebrew line that opened with a signed number laid out left to right, since gpui sets no paragraph direction | +| T40a | 3 | PASS | |