diff --git a/crates/eps/src/import/ai/read.rs b/crates/eps/src/import/ai/read.rs index e19ac8faa..40c667f1d 100644 --- a/crates/eps/src/import/ai/read.rs +++ b/crates/eps/src/import/ai/read.rs @@ -69,7 +69,7 @@ //! //! Sections the reader doesn't need (brushes, symbols, styles, filters) are skipped; //! type, symbols, fills with a pattern it can't read, placed files without a preview and operators -//! it doesn't know are errors. +//! it doesn't know are errors. So is data that ends inside a layer, a group or a compound path. use std::collections::{BTreeSet, HashMap, HashSet}; use std::rc::Rc; @@ -456,6 +456,12 @@ impl<'a> Reader<'a> { } } } + // A pattern's or symbol's reader opens a group of its own and checks it is the only frame + // left. In the document, a container still open after the last layer holds art no layer has. + let in_layer = self.frames.iter().any(|f| matches!(f.kind, Kind::Layer(_))); + if self.subreader_depth == 0 && !in_layer && self.frames.iter().any(|f| !matches!(f.kind, Kind::Obj(_) | Kind::Mask)) { + return Err("it ends inside a group or compound path".into()); + } if self.frames.iter().any(|f| matches!(f.kind, Kind::Layer(_))) { return Err("it ends inside a layer".into()); } diff --git a/crates/eps/src/import/ai/tests.rs b/crates/eps/src/import/ai/tests.rs index 592a969b7..603a98f3b 100644 --- a/crates/eps/src/import/ai/tests.rs +++ b/crates/eps/src/import/ai/tests.rs @@ -1748,6 +1748,20 @@ fn what_it_doesnt_read_is_an_error_where_it_shows() { read_ok(&format!("Adobe_level2_AI5 /initialize get exec\n{}", layer(""))); } +#[test] +fn a_group_still_open_at_the_end_is_an_error() { + let square = format!("{}f\n", rect_path(0.0, 0.0, 10.0, 10.0)); + for open in ["u", "q", "*u", "%_u"] { + let e = read(stream(&format!("{}{open}\n{square}", layer(""))).as_bytes()).unwrap_err(); + assert_eq!(e, "it ends inside a group or compound path", "{open}"); + } + // A group open inside a layer that doesn't end is the layer's error. + let unended = format!("%AI5_BeginLayer\n1 1 1 1 0 0 1 0 79 128 255 0 50 0 Lb\n(L) Ln\nu\n{square}"); + assert_eq!(read(stream(&unended).as_bytes()).unwrap_err(), "it ends inside a layer"); + // Patterns read with a group of their own still read. + assert!(read_ok(&format!("{DOTS}{}", layer(""))).doc.pattern("Dots").is_some()); +} + #[test] fn unresolved_pattern_reset_before_group_path_keeps_live_art() { for (operator, draw, reset) in [("p", "f", "0 0 0 1 k"), ("P", "S", "0 0 0 1 K")] { diff --git a/crates/ui-egui/src/i18n/bg.tsv b/crates/ui-egui/src/i18n/bg.tsv index 0be439854..cbbf3e550 100644 --- a/crates/ui-egui/src/i18n/bg.tsv +++ b/crates/ui-egui/src/i18n/bg.tsv @@ -4439,6 +4439,7 @@ axis Both И двете @msg `{what}` closes nothing `{what}` не затваря нищо @msg `{what}` closes something it didn't open `{what}` затваря нещо, което не е отворило @msg a path has too many points пътят има твърде много точки +@msg it ends inside a group or compound path той завършва вътре в група или съставен път @msg it ends inside a layer той завършва вътре в слой @msg it has art outside its layers той има обекти извън своите слоеве @msg it has more than {MAX_NODES} objects той има повече от {MAX_NODES} обекта diff --git a/crates/ui-egui/src/i18n/bs.tsv b/crates/ui-egui/src/i18n/bs.tsv index 9e6f412d0..c841a7756 100644 --- a/crates/ui-egui/src/i18n/bs.tsv +++ b/crates/ui-egui/src/i18n/bs.tsv @@ -4841,6 +4841,7 @@ imageTrace Outline Obris @msg `{what}` closes nothing `{what}` ne zatvara ništa @msg `{what}` closes something it didn't open `{what}` zatvara nešto što nije otvorio @msg a path has too many points putanja ima previše tačaka +@msg it ends inside a group or compound path završava unutar grupe ili složene putanje @msg it ends inside a layer završava unutar sloja @msg it has art outside its layers ima crtež izvan svojih slojeva @msg it has more than {MAX_NODES} objects ima više od {MAX_NODES} objekata diff --git a/crates/ui-egui/src/i18n/ca.tsv b/crates/ui-egui/src/i18n/ca.tsv index cd43c748a..403e9c8bc 100644 --- a/crates/ui-egui/src/i18n/ca.tsv +++ b/crates/ui-egui/src/i18n/ca.tsv @@ -5061,6 +5061,7 @@ digits Malayalam Malaiàlam @msg invalid stroke widths amplades de traç no vàlides @msg is not an image VectorCraft reads no és una imatge que VectorCraft pugui llegir @msg it decompresses to more than {_1} MB es descomprimeix fins a més de {_1} MB +@msg it ends inside a group or compound path acaba dins d’un grup o d’un traçat compost @msg it ends inside a layer acaba dins d’una capa @msg it ends inside a multi-layer mask acaba dins d’una màscara multicapa @msg a multi-layer mask's operators are out of order els operadors d’una màscara multicapa estan desordenats diff --git a/crates/ui-egui/src/i18n/cs.tsv b/crates/ui-egui/src/i18n/cs.tsv index 28ebe1e0e..f634e9fec 100644 --- a/crates/ui-egui/src/i18n/cs.tsv +++ b/crates/ui-egui/src/i18n/cs.tsv @@ -4890,6 +4890,7 @@ imageTrace Outline Obrys @msg `{w}` takes no operands `{w}` nepřijímá žádné operandy @msg a wraparound group is inside a compound path skupina obtékání textu je uvnitř složené cesty @msg a path has too many points cesta má příliš mnoho bodů +@msg it ends inside a group or compound path končí uvnitř skupiny nebo složené cesty @msg it ends inside a layer končí uvnitř vrstvy @msg it ends inside a multi-layer mask končí uvnitř masky přes více vrstev @msg a multi-layer mask's operators are out of order operátory masky přes více vrstev jsou ve špatném pořadí diff --git a/crates/ui-egui/src/i18n/da.tsv b/crates/ui-egui/src/i18n/da.tsv index 5fc310dea..ea6c96d80 100644 --- a/crates/ui-egui/src/i18n/da.tsv +++ b/crates/ui-egui/src/i18n/da.tsv @@ -4530,6 +4530,7 @@ imageTrace Outline Kontur @msg `{what}` closes nothing `{what}` lukker intet @msg `{what}` closes something it didn't open `{what}` lukker noget, den ikke åbnede @msg a path has too many points en sti har for mange punkter +@msg it ends inside a group or compound path den slutter inde i en gruppe eller en sammensat kurve @msg it ends inside a layer den slutter inde i et lag @msg it has art outside its layers den har grafik uden for sine lag @msg it has more than {MAX_NODES} objects den har flere end {MAX_NODES} objekter diff --git a/crates/ui-egui/src/i18n/de.tsv b/crates/ui-egui/src/i18n/de.tsv index 2d0cbd5c8..ce6f53f62 100644 --- a/crates/ui-egui/src/i18n/de.tsv +++ b/crates/ui-egui/src/i18n/de.tsv @@ -4499,6 +4499,7 @@ theme Appearance Erscheinungsbild @msg `{w}` takes no operands `{w}` nimmt keine Operanden @msg a wraparound group is inside a compound path eine Textumfluss-Gruppe liegt in einem zusammengesetzten Pfad @msg a path has too many points ein Pfad hat zu viele Punkte +@msg it ends inside a group or compound path es endet innerhalb einer Gruppe oder eines zusammengesetzten Pfads @msg it ends inside a layer es endet innerhalb einer Ebene @msg it ends inside a multi-layer mask es endet innerhalb einer ebenenübergreifenden Maske @msg a multi-layer mask's operators are out of order die Operatoren einer ebenenübergreifenden Maske stehen in falscher Reihenfolge diff --git a/crates/ui-egui/src/i18n/el.tsv b/crates/ui-egui/src/i18n/el.tsv index 1a158a157..40bf0907b 100644 --- a/crates/ui-egui/src/i18n/el.tsv +++ b/crates/ui-egui/src/i18n/el.tsv @@ -4532,6 +4532,7 @@ digits Malayalam Μαλαγιάλαμ @msg `{w}` takes no operands το `{w}` δεν δέχεται τελεστέους @msg a wraparound group is inside a compound path μια ομάδα αναδίπλωσης κειμένου βρίσκεται μέσα σε σύνθετη διαδρομή @msg a path has too many points η διαδρομή έχει υπερβολικά πολλά σημεία +@msg it ends inside a group or compound path τερματίζει μέσα σε ομάδα ή σύνθετη διαδρομή @msg it ends inside a layer τερματίζει μέσα σε επίπεδο @msg it ends inside a multi-layer mask τερματίζει μέσα σε μάσκα πολλών επιπέδων @msg a multi-layer mask's operators are out of order οι τελεστές μιας μάσκας πολλών επιπέδων είναι σε λάθος σειρά diff --git a/crates/ui-egui/src/i18n/es.tsv b/crates/ui-egui/src/i18n/es.tsv index 24a101891..ad849fc00 100644 --- a/crates/ui-egui/src/i18n/es.tsv +++ b/crates/ui-egui/src/i18n/es.tsv @@ -4584,6 +4584,7 @@ axis Both Ambos @msg `{w}` takes no operands `{w}` no admite operandos @msg a wraparound group is inside a compound path un grupo de ceñir texto está dentro de un trazado compuesto @msg a path has too many points un trazado tiene demasiados puntos +@msg it ends inside a group or compound path terminan dentro de un grupo o un trazado compuesto @msg it ends inside a layer terminan dentro de una capa @msg it ends inside a multi-layer mask terminan dentro de una máscara de varias capas @msg a multi-layer mask's operators are out of order los operadores de una máscara de varias capas están desordenados diff --git a/crates/ui-egui/src/i18n/fi.tsv b/crates/ui-egui/src/i18n/fi.tsv index 222629d18..9c8b9e051 100644 --- a/crates/ui-egui/src/i18n/fi.tsv +++ b/crates/ui-egui/src/i18n/fi.tsv @@ -4792,6 +4792,7 @@ imageTrace Outline Ääriviiva @msg `{w}` takes no operands `{w}` ei ota operandeja @msg a wraparound group is inside a compound path tekstin rivitysryhmä on yhdistelmäpolun sisällä @msg a path has too many points polulla on liian monta pistettä +@msg it ends inside a group or compound path se päättyy ryhmän tai yhdistelmäpolun sisään @msg it ends inside a layer se päättyy tason sisään @msg it ends inside a multi-layer mask se päättyy monitasoisen maskin sisään @msg a multi-layer mask's operators are out of order monitasoisen maskin operaattorit ovat väärässä järjestyksessä diff --git a/crates/ui-egui/src/i18n/fr.tsv b/crates/ui-egui/src/i18n/fr.tsv index 1bd51a4ef..5179c001a 100644 --- a/crates/ui-egui/src/i18n/fr.tsv +++ b/crates/ui-egui/src/i18n/fr.tsv @@ -4574,6 +4574,7 @@ axis Both Les deux @msg `{w}` takes no operands `{w}` n’accepte aucun opérande @msg a wraparound group is inside a compound path un groupe d’habillage de texte se trouve dans un tracé transparent @msg a path has too many points un tracé a trop de points +@msg it ends inside a group or compound path elles se terminent à l’intérieur d’un groupe ou d’un tracé transparent @msg it ends inside a layer elles se terminent à l’intérieur d’un calque @msg it ends inside a multi-layer mask elles se terminent à l’intérieur d’un masque multicalque @msg a multi-layer mask's operators are out of order les opérateurs d’un masque multicalque sont dans le désordre diff --git a/crates/ui-egui/src/i18n/hu.tsv b/crates/ui-egui/src/i18n/hu.tsv index d106b3fe8..9811e5cd1 100644 --- a/crates/ui-egui/src/i18n/hu.tsv +++ b/crates/ui-egui/src/i18n/hu.tsv @@ -4775,6 +4775,7 @@ imageTrace Outline Körvonal @msg invalid PDF setting: {0} érvénytelen PDF-beállítás: {0} @msg invalid restored panel group érvénytelen visszaállított panelcsoport @msg is not an image VectorCraft reads nem olyan kép, amelyet a VectorCraft olvas +@msg it ends inside a group or compound path egy csoporton vagy összetett útvonalon belül ér véget @msg it ends inside a layer egy rétegen belül ér véget @msg it ends inside a multi-layer mask egy többrétegű maszkon belül ér véget @msg a multi-layer mask's operators are out of order egy többrétegű maszk operátorai rossz sorrendben vannak diff --git a/crates/ui-egui/src/i18n/id.tsv b/crates/ui-egui/src/i18n/id.tsv index fb60a6508..510aa4469 100644 --- a/crates/ui-egui/src/i18n/id.tsv +++ b/crates/ui-egui/src/i18n/id.tsv @@ -4530,6 +4530,7 @@ imageTrace Outline Kontur @msg `{what}` closes nothing `{what}` tidak menutup apa pun @msg `{what}` closes something it didn't open `{what}` menutup sesuatu yang tidak dibukanya @msg a path has too many points sebuah jalur memiliki terlalu banyak titik +@msg it ends inside a group or compound path berakhir di dalam grup atau jalur majemuk @msg it ends inside a layer berakhir di dalam lapisan @msg it has art outside its layers memiliki karya seni di luar lapisannya @msg it has more than {MAX_NODES} objects memiliki lebih dari {MAX_NODES} objek diff --git a/crates/ui-egui/src/i18n/it.tsv b/crates/ui-egui/src/i18n/it.tsv index 79ff0b769..29566d7d1 100644 --- a/crates/ui-egui/src/i18n/it.tsv +++ b/crates/ui-egui/src/i18n/it.tsv @@ -4625,6 +4625,7 @@ axis Both Entrambi @msg `{w}` takes no operands `{w}` non accetta operandi @msg a wraparound group is inside a compound path un gruppo di testo attorno si trova in un tracciato composto @msg a path has too many points un tracciato ha troppi punti +@msg it ends inside a group or compound path terminano all'interno di un gruppo o di un tracciato composto @msg it ends inside a layer terminano all'interno di un livello @msg it ends inside a multi-layer mask terminano all'interno di una maschera multilivello @msg a multi-layer mask's operators are out of order gli operatori di una maschera multilivello non sono in ordine diff --git a/crates/ui-egui/src/i18n/ja.tsv b/crates/ui-egui/src/i18n/ja.tsv index 6bbe8348a..6d79901f8 100644 --- a/crates/ui-egui/src/i18n/ja.tsv +++ b/crates/ui-egui/src/i18n/ja.tsv @@ -4319,6 +4319,7 @@ swatch Bright Violet ビビッドバイオレット @msg `{w}` takes no operands `{w}` はオペランドを取りません @msg a wraparound group is inside a compound path テキストの回り込みグループが複合パスの中にあります @msg a path has too many points ポイントが多すぎるパスがあります +@msg it ends inside a group or compound path グループまたは複合パスの途中で終わっています @msg it ends inside a layer レイヤーの途中で終わっています @msg it ends inside a multi-layer mask 複数レイヤーにまたがるマスクの途中で終わっています @msg a multi-layer mask's operators are out of order 複数レイヤーにまたがるマスクの演算子の順序が正しくありません diff --git a/crates/ui-egui/src/i18n/ka.tsv b/crates/ui-egui/src/i18n/ka.tsv index 0e060cd93..4bff917ee 100644 --- a/crates/ui-egui/src/i18n/ka.tsv +++ b/crates/ui-egui/src/i18n/ka.tsv @@ -4323,6 +4323,7 @@ font-technology Variable ცვლადი @msg `{w}` takes no operands `{w}` ოპერანდებს არ იღებს @msg a wraparound group is inside a compound path ტექსტის გარსშემოვლების ჯგუფი შედგენილი ტრაექტორიის შიგნითაა @msg a path has too many points ტრაექტორიას ზედმეტად ბევრი წერტილი აქვს +@msg it ends inside a group or compound path ის ჯგუფის ან შედგენილი ტრაექტორიის შიგნით მთავრდება @msg it ends inside a layer ის შრის შიგნით მთავრდება @msg it ends inside a multi-layer mask ის მრავალშრიანი ნიღბის შიგნით მთავრდება @msg a multi-layer mask's operators are out of order მრავალშრიანი ნიღბის ოპერატორები არასწორი თანმიმდევრობითაა diff --git a/crates/ui-egui/src/i18n/ko.tsv b/crates/ui-egui/src/i18n/ko.tsv index 7b6cccabf..e9ed52abb 100644 --- a/crates/ui-egui/src/i18n/ko.tsv +++ b/crates/ui-egui/src/i18n/ko.tsv @@ -4246,6 +4246,7 @@ theme Appearance 외관 @msg `{w}` takes no operands `{w}`은(는) 피연산자를 받지 않습니다 @msg a wraparound group is inside a compound path 문자 감싸기 그룹이 컴파운드 패스 안에 있습니다 @msg a path has too many points 패스의 점이 너무 많습니다 +@msg it ends inside a group or compound path 그룹 또는 컴파운드 패스 안에서 끝납니다 @msg it ends inside a layer 레이어 안에서 끝납니다 @msg it ends inside a multi-layer mask 여러 레이어 마스크 안에서 끝납니다 @msg a multi-layer mask's operators are out of order 여러 레이어 마스크의 연산자 순서가 잘못되었습니다 diff --git a/crates/ui-egui/src/i18n/nl.tsv b/crates/ui-egui/src/i18n/nl.tsv index 00090f067..730a5f03b 100644 --- a/crates/ui-egui/src/i18n/nl.tsv +++ b/crates/ui-egui/src/i18n/nl.tsv @@ -4542,6 +4542,7 @@ imageTrace Outline Contour @msg `{what}` closes nothing `{what}` sluit niets @msg `{what}` closes something it didn't open `{what}` sluit iets dat het niet heeft geopend @msg a path has too many points een pad heeft te veel punten +@msg it ends inside a group or compound path het eindigt binnen een groep of samengesteld pad @msg it ends inside a layer het eindigt binnen een laag @msg it has art outside its layers het heeft illustratie buiten zijn lagen @msg it has more than {MAX_NODES} objects het heeft meer dan {MAX_NODES} objecten diff --git a/crates/ui-egui/src/i18n/pl.tsv b/crates/ui-egui/src/i18n/pl.tsv index 5c83cc58c..146c29c71 100644 --- a/crates/ui-egui/src/i18n/pl.tsv +++ b/crates/ui-egui/src/i18n/pl.tsv @@ -4716,6 +4716,7 @@ imageTrace Outline Kontur @msg `{w}` takes no operands `{w}` nie przyjmuje operandów @msg a wraparound group is inside a compound path grupa oblewania tekstem jest wewnątrz ścieżki złożonej @msg a path has too many points ścieżka ma zbyt wiele punktów +@msg it ends inside a group or compound path kończy się wewnątrz grupy lub ścieżki złożonej @msg it ends inside a layer kończy się wewnątrz warstwy @msg it ends inside a multi-layer mask kończy się wewnątrz maski wielowarstwowej @msg a multi-layer mask's operators are out of order operatory maski wielowarstwowej są w złej kolejności diff --git a/crates/ui-egui/src/i18n/pt-br.tsv b/crates/ui-egui/src/i18n/pt-br.tsv index 20d806ddd..eacef0f4c 100644 --- a/crates/ui-egui/src/i18n/pt-br.tsv +++ b/crates/ui-egui/src/i18n/pt-br.tsv @@ -4172,6 +4172,7 @@ axis Both Ambos @msg `{w}` takes no operands `{w}` não aceita operandos @msg a wraparound group is inside a compound path um grupo de quebra de texto está dentro de um traçado composto @msg a path has too many points um traçado tem pontos demais +@msg it ends inside a group or compound path termina dentro de um grupo ou caminho composto @msg it ends inside a layer termina dentro de uma camada @msg it ends inside a multi-layer mask termina dentro de uma máscara de várias camadas @msg a multi-layer mask's operators are out of order os operadores de uma máscara de várias camadas estão fora de ordem diff --git a/crates/ui-egui/src/i18n/ru.tsv b/crates/ui-egui/src/i18n/ru.tsv index bea46474c..e7b9fd659 100644 --- a/crates/ui-egui/src/i18n/ru.tsv +++ b/crates/ui-egui/src/i18n/ru.tsv @@ -4620,6 +4620,7 @@ axis Both Оба @msg `{w}` takes no operands `{w}` не принимает операндов @msg a wraparound group is inside a compound path группа обтекания текстом находится внутри составного контура @msg a path has too many points в контуре слишком много точек +@msg it ends inside a group or compound path они заканчиваются внутри группы или составного контура @msg it ends inside a layer они заканчиваются внутри слоя @msg it ends inside a multi-layer mask они заканчиваются внутри многослойной маски @msg a multi-layer mask's operators are out of order операторы многослойной маски идут в неправильном порядке diff --git a/crates/ui-egui/src/i18n/sv.tsv b/crates/ui-egui/src/i18n/sv.tsv index 17b4a6677..11398b46a 100644 --- a/crates/ui-egui/src/i18n/sv.tsv +++ b/crates/ui-egui/src/i18n/sv.tsv @@ -4483,6 +4483,7 @@ axis Both Båda @msg `{w}` takes no operands `{w}` tar inga operander @msg a wraparound group is inside a compound path en textombrytningsgrupp ligger inuti en sammansatt bana @msg a path has too many points en bana har för många punkter +@msg it ends inside a group or compound path den slutar inuti en grupp eller en sammansatt bana @msg it ends inside a layer den slutar inuti ett lager @msg it ends inside a multi-layer mask den slutar inuti en flerlagersmask @msg a multi-layer mask's operators are out of order operatorerna för en flerlagersmask står i fel ordning diff --git a/crates/ui-egui/src/i18n/tr.tsv b/crates/ui-egui/src/i18n/tr.tsv index bd54fe47c..da1a8cb96 100644 --- a/crates/ui-egui/src/i18n/tr.tsv +++ b/crates/ui-egui/src/i18n/tr.tsv @@ -4321,6 +4321,7 @@ axis Both Her İkisi @msg `{w}` takes no operands `{w}` işlenen almaz @msg a wraparound group is inside a compound path bir metin kaydırma grubu bileşik bir yolun içinde @msg a path has too many points bir yolun çok fazla noktası var +@msg it ends inside a group or compound path bir grubun veya bileşik yolun içinde bitiyor @msg it ends inside a layer bir katmanın içinde bitiyor @msg it ends inside a multi-layer mask çok katmanlı bir maskenin içinde bitiyor @msg a multi-layer mask's operators are out of order çok katmanlı bir maskenin işleçleri yanlış sırada diff --git a/crates/ui-egui/src/i18n/uk.tsv b/crates/ui-egui/src/i18n/uk.tsv index 18090209f..d9f29cd3e 100644 --- a/crates/ui-egui/src/i18n/uk.tsv +++ b/crates/ui-egui/src/i18n/uk.tsv @@ -4609,6 +4609,7 @@ axis Both Обидві @msg `{w}` takes no operands `{w}` не приймає операндів @msg a wraparound group is inside a compound path група обтікання текстом розташована всередині складеного контуру @msg a path has too many points у контурі занадто багато точок +@msg it ends inside a group or compound path вони закінчуються всередині групи або складеного контуру @msg it ends inside a layer вони закінчуються всередині шару @msg it ends inside a multi-layer mask вони закінчуються всередині багатошарової маски @msg a multi-layer mask's operators are out of order оператори багатошарової маски йдуть у неправильному порядку diff --git a/crates/ui-egui/src/i18n/vi.tsv b/crates/ui-egui/src/i18n/vi.tsv index 198eb64b7..529e20dac 100644 --- a/crates/ui-egui/src/i18n/vi.tsv +++ b/crates/ui-egui/src/i18n/vi.tsv @@ -4425,6 +4425,7 @@ theme Appearance Giao diện @msg invalid PDF setting: {0} cài đặt PDF không hợp lệ: {0} @msg invalid restored panel group nhóm bảng được phục hồi không hợp lệ @msg is not an image VectorCraft reads không phải ảnh mà VectorCraft đọc được +@msg it ends inside a group or compound path nó kết thúc bên trong một nhóm hoặc đường dẫn phức @msg it ends inside a layer nó kết thúc bên trong một lớp @msg it ends inside a multi-layer mask nó kết thúc bên trong một mặt nạ nhiều lớp @msg a multi-layer mask's operators are out of order các toán tử của mặt nạ nhiều lớp không đúng thứ tự diff --git a/crates/ui-egui/src/i18n/zh-hans.tsv b/crates/ui-egui/src/i18n/zh-hans.tsv index 53ac5d929..104e44209 100644 --- a/crates/ui-egui/src/i18n/zh-hans.tsv +++ b/crates/ui-egui/src/i18n/zh-hans.tsv @@ -4044,6 +4044,7 @@ imageTrace Outline 轮廓 @msg `{w}` takes no operands `{w}` 不接受操作数 @msg a wraparound group is inside a compound path 文本绕排组位于复合路径内 @msg a path has too many points 某条路径的点过多 +@msg it ends inside a group or compound path 它在编组或复合路径内部结束 @msg it ends inside a layer 它在图层内部结束 @msg it ends inside a multi-layer mask 它在跨图层蒙版内部结束 @msg a multi-layer mask's operators are out of order 跨图层蒙版的运算符顺序错误 diff --git a/crates/ui-egui/src/i18n/zh-hant.tsv b/crates/ui-egui/src/i18n/zh-hant.tsv index 218e95a1d..b10c5ab5e 100644 --- a/crates/ui-egui/src/i18n/zh-hant.tsv +++ b/crates/ui-egui/src/i18n/zh-hant.tsv @@ -1964,6 +1964,7 @@ file-filter Templates 範本 @msg `{w}` takes no operands `{w}` 不接受運算元 @msg a wraparound group is inside a compound path 文字繞圖群組位於複合路徑內 @msg a path has too many points 有一條路徑的點過多 +@msg it ends inside a group or compound path 它在群組或複合路徑內部結束 @msg it ends inside a layer 它在圖層內部結束 @msg it ends inside a multi-layer mask 它在跨圖層遮色片內部結束 @msg a multi-layer mask's operators are out of order 跨圖層遮色片的運算子順序錯誤