From 0f08d53b060f922cc8337950e85eee410aa22076 Mon Sep 17 00:00:00 2001 From: bflatastic Date: Sun, 15 Nov 2026 17:36:46 +0700 Subject: [PATCH 1/2] Image Trace: a closed seam run is the subpath itself #7814 made SubPath::anchors an Anchors, and #7810's seam fills, merged in the same batch, passed it to SubPath::new, which takes a Vec, so vectorcraft-trace doesn't compile on main. A closed subpath whose every segment is marked is its own run: clone it. --- crates/trace/src/seam.rs | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/crates/trace/src/seam.rs b/crates/trace/src/seam.rs index 5a1ffa96c5..726916e240 100644 --- a/crates/trace/src/seam.rs +++ b/crates/trace/src/seam.rs @@ -84,7 +84,7 @@ fn fills(paths: &[TracedPath]) -> Vec { continue; } if sp.closed && marks.iter().all(|&m| m) { - runs.push(SubPath::new(sp.anchors.clone(), true)); + runs.push(sp.clone()); continue; } // Start after an unmarked segment, so that a run across the subpath's first anchor From 34eac939c90abae4630119e6757a35e42c2a85c7 Mon Sep 17 00:00:00 2001 From: bflatastic Date: Sun, 15 Nov 2026 18:35:11 +0700 Subject: [PATCH 2/2] i18n: Russian keeps one row of each script answers message #7532's script.run answers rows and the Russian message rows landed in the same batch with the same ten messages, so bundled_catalogs_are_consistent fails on a duplicate. The first of each pair stays. --- crates/ui-egui/src/i18n/ru.tsv | 10 ---------- 1 file changed, 10 deletions(-) diff --git a/crates/ui-egui/src/i18n/ru.tsv b/crates/ui-egui/src/i18n/ru.tsv index 3cfb5b2940..51d714095c 100644 --- a/crates/ui-egui/src/i18n/ru.tsv +++ b/crates/ui-egui/src/i18n/ru.tsv @@ -7840,9 +7840,6 @@ shape Open Открытый @msg `anchors` must list anchor indices (0, 1, 2…), not {k} `anchors` должно содержать индексы опорных точек (0, 1, 2…), а не {k} @msg `anchors` must list anchor indices (0, 1, 2…), not {v} `anchors` должно содержать индексы опорных точек (0, 1, 2…), а не {v} @msg `answer` for this {kind} dialog must be one of: {_1} `answer` для этого диалогового окна {kind} должно быть одним из: {_1} -@msg `answers` has more than {MAX_ANSWERS} answers в `answers` больше {MAX_ANSWERS} ответов -@msg `answers` is larger than 1 MiB `answers` больше 1 MiB -@msg `answers` must be a list of answers `answers` должно быть списком ответов @msg `artboard` must be the index of an artboard of the document `artboard` должно быть индексом монтажной области документа @msg `artboardsAt` must be [x, y] `artboardsAt` должно быть [x, y] @msg `artboards` must be a list of artboard indices `artboards` должно быть списком индексов монтажных областей @@ -8586,10 +8583,6 @@ shape Open Открытый @msg invalid t недопустимое t @msg invalid time value недопустимое значение времени @msg invalid tolerance недопустимый допуск -@msg is a confirm's answer, whose `value` must be true or false является ответом для confirm, `value` которого должно быть true или false -@msg is a prompt's answer, whose `value` must be a string or null является ответом для prompt, `value` которого должно быть строкой или null -@msg is an alert's answer, whose `value` must be "ok" является ответом для alert, `value` которого должно быть "ok" -@msg is longer than 16 KiB длиннее 16 KiB @msg it draws its image through a clipping path он рисует своё изображение через контур обрезки @msg it draws no image он не рисует изображения @msg it is larger than {MAX_DICTIONARY_FILE_BYTES} bytes он больше {MAX_DICTIONARY_FILE_BYTES} байт @@ -8717,9 +8710,6 @@ shape Open Открытый @msg more than {MAX_FILES} images больше {MAX_FILES} изображений @msg more than {MAX_IMPORT} presets больше {MAX_IMPORT} наборов @msg moved must be [[x,y]…] moved должно быть [[x,y]…] -@msg must be an object with `kind` and `value` должен быть объектом с `kind` и `value` -@msg must have `kind` alert, confirm or prompt должен иметь `kind` alert, confirm или prompt -@msg must have exactly `kind` and `value` должен содержать только `kind` и `value` # Messages that begin with a lowercase word, n to s. @msg name (a toolbar's name) is required требуется name (имя панели инструментов) @msg name (a toolbar's name) must be a string name (имя панели инструментов) должно быть строкой