mirror of
https://github.com/storytold/vectorcraft.git
synced 2026-11-08 16:30:41 +00:00
.ai import: a wraparound group's graphics wrap with no offset
Every graphic in a version 7 wraparound group (`*w` … `*W`), before or after its type, is now a wrap object with an offset of 0 instead of the 6 pt default, and a group with no type in it marks all of its graphics. A graphic before the type is below it, so the type flows around it only after it is moved above. Operands on `*w` or `*W`, and a `*w` inside a compound path, are errors. Docs: docs/file-format-parity.md.
This commit is contained in:
@@ -8,7 +8,9 @@
|
||||
//! canvas (16,383 points around the template box's centre) or from edge to edge of one artboard
|
||||
//! is a ruler guide on that layer ([`Document::guides`]); other guide paths stay paths.
|
||||
//! - Groups `u` … `U`, compound paths `*u` … `*U`, clipping groups `q` … `Q` (the path painted
|
||||
//! with `W` clips); a group's transparency and name follow its end.
|
||||
//! with `W` clips); a group's transparency and name follow its end. A wraparound group `*w` …
|
||||
//! `*W` (version 7 specification §15.4.2) is a group whose objects other than its type wrap
|
||||
//! area type, with no offset.
|
||||
//! - Paths: `m`, `l`/`L`, `c`/`C`, `v`/`V`, `y`/`Y`, painted by `N n F f S s B b` (lower case
|
||||
//! closes), `(op) *` for a guide. Stroke `w J j M d`, fill rule `XR`, overprint `O`/`R`.
|
||||
//! - State: hidden `Xw`, locked `A`, transparency `mode opacity isolate knockout shape Xy`.
|
||||
|
||||
@@ -98,13 +98,13 @@ impl<'a> Reader<'a> {
|
||||
self.pending_unread_fill = pending_unread_fill;
|
||||
self.pending_unread_stroke = pending_unread_stroke;
|
||||
}
|
||||
// Wraparound text: the objects after its text object are wrap objects, at the default
|
||||
// options (the format gives none) unless their dictionaries give theirs.
|
||||
if matches!(kind, Kind::Wrap)
|
||||
&& let Some(text) = kids.iter().position(|k| matches!(k.kind, NodeKind::Text(_)) || slot_of(k.name.as_deref()).is_some())
|
||||
{
|
||||
for k in kids.iter_mut().skip(text + 1).filter(|k| k.extras().wrap.is_none()) {
|
||||
k.extras_mut().wrap = Some(TextWrap::default());
|
||||
// Wraparound text: every object in it other than type is a wrap object, before the text or
|
||||
// after it, with no offset (the format gives none) unless its dictionary gives its options.
|
||||
// One before the text is below it, so the text flows around it only once it is moved above.
|
||||
if matches!(kind, Kind::Wrap) {
|
||||
let graphics = kids.iter_mut().filter(|k| !matches!(k.kind, NodeKind::Text(_)) && slot_of(k.name.as_deref()).is_none());
|
||||
for k in graphics.filter(|k| k.extras().wrap.is_none()) {
|
||||
k.extras_mut().wrap = Some(TextWrap { offset: 0.0, invert: false });
|
||||
}
|
||||
}
|
||||
// A group holding only clipping paths (`q … u <path> W n U … Q`) doesn't clip on its own: `u`/`U` don't save
|
||||
|
||||
@@ -125,6 +125,11 @@ impl<'a> Reader<'a> {
|
||||
self.end_path_quietly();
|
||||
self.open(Kind::Compound, hidden)?
|
||||
}
|
||||
// A wraparound group takes no operands and isn't an element of a compound path.
|
||||
"*w" | "*W" if !vals.is_empty() => return Err(format!("`{w}` takes no operands")),
|
||||
"*w" if self.frames.iter().any(|f| matches!(f.kind, Kind::Compound)) => {
|
||||
return Err("a wraparound group is inside a compound path".into());
|
||||
}
|
||||
"*w" => {
|
||||
self.end_path_quietly();
|
||||
self.open(Kind::Wrap, hidden)?
|
||||
|
||||
@@ -142,8 +142,8 @@ pub(super) struct LayerAttrs {
|
||||
pub(super) enum Kind {
|
||||
Layer(Box<LayerAttrs>),
|
||||
Group,
|
||||
/// Wraparound text (`*w` … `*W`, version 7 specification §15.4.2): a group whose objects after
|
||||
/// its text object are wrap objects.
|
||||
/// Wraparound text (`*w` … `*W`, version 7 specification §15.4.2): a group whose objects other
|
||||
/// than its type are wrap objects.
|
||||
Wrap,
|
||||
Compound,
|
||||
Clip,
|
||||
|
||||
@@ -3337,12 +3337,41 @@ fn legacy_wrap_group() {
|
||||
assert_eq!(kids.len(), 1, "{:?}", r.warnings);
|
||||
let NodeKind::Group { children, clip: false } = &kids[0].kind else { panic!("a group: {:?}", kids[0].kind) };
|
||||
let wraps: Vec<(bool, bool)> = children.iter().map(|c| (matches!(c.kind, NodeKind::Text(_)), wrap_of(c).is_some())).collect();
|
||||
assert_eq!(wraps, [(false, false), (true, false), (false, true), (false, true)], "{:?}", r.warnings);
|
||||
assert_eq!(wrap_of(&children[2]), Some(vectorcraft_doc::TextWrap::default()));
|
||||
assert_eq!(wraps, [(false, true), (true, false), (false, true), (false, true)], "objects before the text are wrap objects too: {:?}", r.warnings);
|
||||
let none = Some(vectorcraft_doc::TextWrap { offset: 0.0, invert: false });
|
||||
assert_eq!(wrap_of(&children[0]), none, "no offset");
|
||||
assert_eq!(wrap_of(&children[2]), none, "no offset");
|
||||
assert_eq!(wrap_of(&children[3]), Some(vectorcraft_doc::TextWrap { offset: 3.0, invert: true }));
|
||||
assert!(!r.warnings.iter().any(|w| w.contains("*w") || w.contains("*W")), "{:?}", r.warnings);
|
||||
}
|
||||
|
||||
/// A wraparound group with no type in it: each of its objects is a wrap object, with no offset.
|
||||
#[test]
|
||||
fn legacy_wrap_group_without_text() {
|
||||
let body = format!("*w\n{RED}{}f\n{}f\n*W\n", rect_path(0.0, 0.0, 5.0, 5.0), rect_path(30.0, 30.0, 50.0, 50.0));
|
||||
let r = read_ok(&layer(&body));
|
||||
let kids = art(&r.doc);
|
||||
assert_eq!(kids.len(), 1, "{:?}", r.warnings);
|
||||
let NodeKind::Group { children, clip: false } = &kids[0].kind else { panic!("a group: {:?}", kids[0].kind) };
|
||||
let wraps: Vec<_> = children.iter().map(|c| wrap_of(c)).collect();
|
||||
assert_eq!(wraps, [Some(vectorcraft_doc::TextWrap { offset: 0.0, invert: false }); 2]);
|
||||
}
|
||||
|
||||
/// `*w` and `*W` take no operands, and a wraparound group can't be an element of a compound path.
|
||||
#[test]
|
||||
fn legacy_wrap_group_errors() {
|
||||
let square = format!("{RED}{}f\n", rect_path(0.0, 0.0, 5.0, 5.0));
|
||||
for (body, error) in [
|
||||
(format!("1 *w\n{square}*W\n"), "`*w` takes no operands"),
|
||||
(format!("*w\n{square}0 *W\n"), "`*W` takes no operands"),
|
||||
(format!("*u\n*w\n{square}*W\n*U\n"), "a wraparound group is inside a compound path"),
|
||||
(format!("*u\nu\n*w\n{square}*W\nU\n*U\n"), "a wraparound group is inside a compound path"),
|
||||
] {
|
||||
let e = read(stream(&layer(&body)).as_bytes()).unwrap_err();
|
||||
assert!(e.contains(error), "{body:?}: {e}");
|
||||
}
|
||||
}
|
||||
|
||||
/// The printer's crop marks Illustrator draws after the last layer (`%AI3_BeginCrops`, inside
|
||||
/// `userdict /AI3_noCropMarks known not { … } if`) aren't art outside the layers: the file reads
|
||||
/// from its layers, without them (the crop area is `%AI3_Cropmarks`).
|
||||
|
||||
@@ -4810,6 +4810,8 @@ digits Malayalam Malaiàlam
|
||||
@msg `{to}` is not an available name `{to}` no és un nom disponible
|
||||
@msg `{what}` closes nothing `{what}` no tanca res
|
||||
@msg `{what}` closes something it didn't open `{what}` tanca una cosa que no havia obert
|
||||
@msg `{w}` takes no operands `{w}` no admet operands
|
||||
@msg a wraparound group is inside a compound path un grup d’ajustament del text és dins d’un traçat compost
|
||||
@msg a bitmap is empty un mapa de bits és buit
|
||||
@msg a bitmap is too large to read un mapa de bits és massa gran per llegir-lo
|
||||
@msg a bristle brush name can have at most {max} characters: `{name}` has {count} el nom d’un pinzell de cerres pot tenir com a màxim {max} caràcters: `{name}` en té {count}
|
||||
|
||||
|
Can't render this file because it contains an unexpected character in line 2 and column 73.
|
@@ -4868,6 +4868,8 @@ imageTrace Outline Obrys
|
||||
@msg this isn't a flat-colour logo ({_1}% of its solid areas match a few flat colours), so Flat Logo mode would turn its gradients into patches: use Color mode instead nejde o logo s plnými barvami ({_1} % jeho plných ploch odpovídá několika plným barvám), takže režim Ploché logo by z jeho přechodů udělal skvrny: použijte místo toho režim Barva
|
||||
@msg `{what}` closes nothing `{what}` nic neuzavírá
|
||||
@msg `{what}` closes something it didn't open `{what}` uzavírá něco, co neotevřel
|
||||
@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 layer končí uvnitř vrstvy
|
||||
@msg it has art outside its layers má kresbu mimo své vrstvy
|
||||
|
||||
|
Can't render this file because it contains an unexpected character in line 2 and column 73.
|
@@ -4477,6 +4477,8 @@ theme Appearance Erscheinungsbild
|
||||
@msg this isn't a flat-colour logo ({_1}% of its solid areas match a few flat colours), so Flat Logo mode would turn its gradients into patches: use Color mode instead dies ist kein Logo aus flächigen Farben ({_1} % seiner einfarbigen Bereiche entsprechen wenigen flächigen Farben), daher würde der Modus „Flaches Logo“ seine Verläufe in Flecken zerlegen: Verwenden Sie stattdessen den Modus „Farbe“
|
||||
@msg `{what}` closes nothing `{what}` schließt nichts
|
||||
@msg `{what}` closes something it didn't open `{what}` schließt etwas, das es nicht geöffnet hat
|
||||
@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 layer es endet innerhalb einer Ebene
|
||||
@msg it has art outside its layers es enthält Grafik außerhalb seiner Ebenen
|
||||
|
||||
|
Can't render this file because it contains an unexpected character in line 2 and column 73.
|
@@ -4510,6 +4510,8 @@ digits Malayalam Μαλαγιάλαμ
|
||||
@msg this isn't a flat-colour logo ({_1}% of its solid areas match a few flat colours), so Flat Logo mode would turn its gradients into patches: use Color mode instead αυτό δεν είναι λογότυπο επίπεδων χρωμάτων ({_1}% των συμπαγών περιοχών του αντιστοιχούν σε λίγα χρώματα), επομένως η λειτουργία Επίπεδο λογότυπο θα μετατρέψει τα ντεγκραντέ σε κηλίδες: χρησιμοποιήστε τη λειτουργία Χρώμα
|
||||
@msg `{what}` closes nothing το `{what}` δεν κλείνει κανένα στοιχείο
|
||||
@msg `{what}` closes something it didn't open το `{what}` κλείνει στοιχείο που δεν άνοιξε
|
||||
@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 layer τερματίζει μέσα σε επίπεδο
|
||||
@msg it has art outside its layers περιέχει σχέδιο εκτός των επιπέδων του
|
||||
|
||||
|
Can't render this file because it contains an unexpected character in line 164 and column 5.
|
@@ -4562,6 +4562,8 @@ axis Both Ambos
|
||||
@msg this isn't a flat-colour logo ({_1}% of its solid areas match a few flat colours), so Flat Logo mode would turn its gradients into patches: use Color mode instead esto no es un logotipo de colores planos ({_1}% de sus zonas sólidas coinciden con unos pocos colores planos), así que el modo Logotipo plano convertiría sus degradados en manchas: usa el modo Color
|
||||
@msg `{what}` closes nothing `{what}` no cierra nada
|
||||
@msg `{what}` closes something it didn't open `{what}` cierra algo que no abrió
|
||||
@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 layer terminan dentro de una capa
|
||||
@msg it has art outside its layers tienen ilustraciones fuera de sus capas
|
||||
|
||||
|
Can't render this file because it contains an unexpected character in line 2 and column 73.
|
@@ -4770,6 +4770,8 @@ imageTrace Outline Ääriviiva
|
||||
@msg this isn't a flat-colour logo ({_1}% of its solid areas match a few flat colours), so Flat Logo mode would turn its gradients into patches: use Color mode instead tämä ei ole tasavärinen logo ({_1} % sen yhtenäisistä alueista vastaa muutamaa tasaväriä), joten Tasavärilogo-tila muuttaisi sen liukuvärit laikuiksi: käytä sen sijaan Väri-tilaa
|
||||
@msg `{what}` closes nothing `{what}` ei sulje mitään
|
||||
@msg `{what}` closes something it didn't open `{what}` sulkee jotain, mitä se ei avannut
|
||||
@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 layer se päättyy tason sisään
|
||||
@msg it has art outside its layers siinä on kuvitusta tasojensa ulkopuolella
|
||||
|
||||
|
Can't render this file because it contains an unexpected character in line 2 and column 73.
|
@@ -4552,6 +4552,8 @@ axis Both Les deux
|
||||
@msg this isn't a flat-colour logo ({_1}% of its solid areas match a few flat colours), so Flat Logo mode would turn its gradients into patches: use Color mode instead ce n’est pas un logo en aplats ({_1} % de ses zones pleines correspondent à quelques couleurs unies), donc le mode Logo en aplats transformerait ses dégradés en taches : utilisez le mode Couleur
|
||||
@msg `{what}` closes nothing `{what}` ne ferme rien
|
||||
@msg `{what}` closes something it didn't open `{what}` ferme quelque chose qu’il n’a pas ouvert
|
||||
@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 layer elles se terminent à l’intérieur d’un calque
|
||||
@msg it has art outside its layers elles contiennent des illustrations hors de leurs calques
|
||||
|
||||
|
Can't render this file because it contains an unexpected character in line 2 and column 73.
|
@@ -4553,6 +4553,8 @@ imageTrace Outline Körvonal
|
||||
@msg `{to}` is not an available name ez a név nem használható: `{to}`
|
||||
@msg `{what}` closes nothing `{what}` semmit sem zár le
|
||||
@msg `{what}` closes something it didn't open `{what}` olyat zár le, amit nem nyitott meg
|
||||
@msg `{w}` takes no operands `{w}` nem fogad operandusokat
|
||||
@msg a wraparound group is inside a compound path egy szövegkörbefuttatási csoport összetett útvonalon belül van
|
||||
@msg a bitmap is empty egy bitkép üres
|
||||
@msg a bitmap is too large to read egy bitkép túl nagy a beolvasáshoz
|
||||
@msg A browser with WebGPU or WebGL2 is required. WebGPU-t vagy WebGL2-t támogató böngésző szükséges.
|
||||
|
||||
|
Can't render this file because it contains an unexpected character in line 2 and column 73.
|
@@ -4603,6 +4603,8 @@ axis Both Entrambi
|
||||
@msg this isn't a flat-colour logo ({_1}% of its solid areas match a few flat colours), so Flat Logo mode would turn its gradients into patches: use Color mode instead questo non è un logo a colori piatti ({_1}% delle sue aree piene corrisponde a pochi colori piatti), quindi la modalità Logo piatto trasformerebbe i suoi sfumati in macchie: usa la modalità Colore
|
||||
@msg `{what}` closes nothing `{what}` non chiude nulla
|
||||
@msg `{what}` closes something it didn't open `{what}` chiude qualcosa che non ha aperto
|
||||
@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 layer terminano all'interno di un livello
|
||||
@msg it has art outside its layers contengono grafica al di fuori dei loro livelli
|
||||
|
||||
|
Can't render this file because it contains an unexpected character in line 2 and column 73.
|
@@ -4307,6 +4307,8 @@ swatch Bright Violet ビビッドバイオレット
|
||||
@msg unknown command `{0}`; did you mean `{1}`? `{0}` は不明なコマンドです。`{1}` のことですか?
|
||||
@msg `{what}` closes nothing `{what}` に対応する開始部分がありません
|
||||
@msg `{what}` closes something it didn't open `{what}` が対応しない開始部分を閉じています
|
||||
@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 layer レイヤーの途中で終わっています
|
||||
@msg it has art outside its layers レイヤーの外にアートがあります
|
||||
|
||||
|
Can't render this file because it contains an unexpected character in line 2 and column 73.
|
@@ -4302,6 +4302,8 @@ font-technology Variable ცვლადი
|
||||
@msg this isn't a flat-colour logo ({_1}% of its solid areas match a few flat colours), so Flat Logo mode would turn its gradients into patches: use Color mode instead ეს ერთფეროვანი ლოგო არ არის (მისი მყარი არეების {_1}% რამდენიმე ერთგვაროვან ფერს ემთხვევა), ამიტომ Flat Logo რეჟიმი მის გრადიენტებს ლაქებად აქცევდა: გამოიყენეთ Color რეჟიმი
|
||||
@msg `{what}` closes nothing `{what}` არაფერს ხურავს
|
||||
@msg `{what}` closes something it didn't open `{what}` ხურავს იმას, რაც არ გაუხსნია
|
||||
@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 layer ის შრის შიგნით მთავრდება
|
||||
@msg it has art outside its layers მას შრეების გარეთ ნახატი აქვს
|
||||
|
||||
|
Can't render this file because it is too large.
|
@@ -4234,6 +4234,8 @@ theme Appearance 외관
|
||||
@msg unknown command `{0}`; did you mean `{1}`? 알 수 없는 명령 `{0}`: `{1}`을(를) 의미하셨습니까?
|
||||
@msg `{what}` closes nothing `{what}`이(가) 닫는 항목이 없습니다
|
||||
@msg `{what}` closes something it didn't open `{what}`이(가) 열지 않은 항목을 닫습니다
|
||||
@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 layer 레이어 안에서 끝납니다
|
||||
@msg it has art outside its layers 레이어 밖에 아트웍이 있습니다
|
||||
|
||||
|
Can't render this file because it contains an unexpected character in line 2 and column 73.
|
@@ -4694,6 +4694,8 @@ imageTrace Outline Kontur
|
||||
@msg this isn't a flat-colour logo ({_1}% of its solid areas match a few flat colours), so Flat Logo mode would turn its gradients into patches: use Color mode instead to nie jest logo z płaskimi kolorami ({_1}% jego jednolitych obszarów pasuje do kilku płaskich kolorów), więc tryb Płaskie logo zamieniłby jego gradienty w plamy: użyj trybu Kolor
|
||||
@msg `{what}` closes nothing `{what}` niczego nie zamyka
|
||||
@msg `{what}` closes something it didn't open `{what}` zamyka coś, czego nie otworzył
|
||||
@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 layer kończy się wewnątrz warstwy
|
||||
@msg it has art outside its layers ma kompozycję poza warstwami
|
||||
|
||||
|
Can't render this file because it contains an unexpected character in line 2 and column 73.
|
@@ -4148,6 +4148,8 @@ axis Both Ambos
|
||||
@msg this isn't a flat-colour logo ({_1}% of its solid areas match a few flat colours), so Flat Logo mode would turn its gradients into patches: use Color mode instead este não é um logotipo de cores chapadas ({_1}% de suas áreas sólidas correspondem a poucas cores chapadas), então o modo Logotipo plano transformaria seus gradientes em manchas: use o modo Cor
|
||||
@msg `{what}` closes nothing `{what}` não fecha nada
|
||||
@msg `{what}` closes something it didn't open `{what}` fecha algo que não abriu
|
||||
@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 layer termina dentro de uma camada
|
||||
@msg it has art outside its layers tem arte fora de suas camadas
|
||||
|
||||
|
Can't render this file because it contains an unexpected character in line 6 and column 47.
|
@@ -4598,6 +4598,8 @@ axis Both Оба
|
||||
@msg this isn't a flat-colour logo ({_1}% of its solid areas match a few flat colours), so Flat Logo mode would turn its gradients into patches: use Color mode instead это не логотип из плоских цветов ({_1}% его сплошных областей совпадает с несколькими плоскими цветами), поэтому режим «Плоский логотип» превратил бы градиенты в пятна: используйте режим «Цвет»
|
||||
@msg `{what}` closes nothing `{what}` ничего не закрывает
|
||||
@msg `{what}` closes something it didn't open `{what}` закрывает то, что не открывал
|
||||
@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 layer они заканчиваются внутри слоя
|
||||
@msg it has art outside its layers в них есть графика вне слоёв
|
||||
|
||||
|
Can't render this file because it contains an unexpected character in line 2 and column 73.
|
@@ -4461,6 +4461,8 @@ axis Both Båda
|
||||
@msg this isn't a flat-colour logo ({_1}% of its solid areas match a few flat colours), so Flat Logo mode would turn its gradients into patches: use Color mode instead det här är ingen logotyp i platta färger ({_1} % av dess enfärgade ytor matchar några få platta färger), så läget Platt logotyp skulle göra om dess gradienter till fläckar: använd läget Färg i stället
|
||||
@msg `{what}` closes nothing `{what}` stänger ingenting
|
||||
@msg `{what}` closes something it didn't open `{what}` stänger något som den inte öppnade
|
||||
@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 layer den slutar inuti ett lager
|
||||
@msg it has art outside its layers den har grafik utanför sina lager
|
||||
|
||||
|
Can't render this file because it contains an unexpected character in line 5 and column 25.
|
@@ -4299,6 +4299,8 @@ axis Both Her İkisi
|
||||
@msg this isn't a flat-colour logo ({_1}% of its solid areas match a few flat colours), so Flat Logo mode would turn its gradients into patches: use Color mode instead bu düz renkli bir logo değildir (düz alanların %{_1}'si birkaç düz renkle eşleşir), dolayısıyla Düz Logo modu degradelerini yamalara dönüştürür: bunun yerine Renk modunu kullanın
|
||||
@msg `{what}` closes nothing `{what}` hiçbir şeyi kapatmaz
|
||||
@msg `{what}` closes something it didn't open `{what}` açmadığı bir şeyi kapatıyor
|
||||
@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 layer bir katmanın içinde bitiyor
|
||||
@msg it has art outside its layers katmanlarının dışında sanat var
|
||||
|
||||
|
Can't render this file because it contains an unexpected character in line 5 and column 25.
|
@@ -4587,6 +4587,8 @@ axis Both Обидві
|
||||
@msg this isn't a flat-colour logo ({_1}% of its solid areas match a few flat colours), so Flat Logo mode would turn its gradients into patches: use Color mode instead це не логотип із плоских кольорів ({_1}% його суцільних областей збігається з кількома плоскими кольорами), тому режим «Плоский логотип» перетворив би градієнти на плями: використовуйте режим «Колір»
|
||||
@msg `{what}` closes nothing `{what}` нічого не закриває
|
||||
@msg `{what}` closes something it didn't open `{what}` закриває те, що не відкривав
|
||||
@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 layer вони закінчуються всередині шару
|
||||
@msg it has art outside its layers у них є графіка поза шарами
|
||||
|
||||
|
Can't render this file because it contains an unexpected character in line 178 and column 5.
|
@@ -4205,6 +4205,8 @@ theme Appearance Giao diện
|
||||
@msg `{to}` is not an available name `{to}` không phải là tên khả dụng
|
||||
@msg `{what}` closes nothing `{what}` không đóng gì
|
||||
@msg `{what}` closes something it didn't open `{what}` đóng thứ nó chưa mở
|
||||
@msg `{w}` takes no operands `{w}` không nhận toán hạng
|
||||
@msg a wraparound group is inside a compound path một nhóm bao văn bản nằm trong một đường dẫn phức
|
||||
@msg a bitmap is empty ảnh bitmap trống
|
||||
@msg a bitmap is too large to read ảnh bitmap quá lớn để đọc
|
||||
@msg A browser with WebGPU or WebGL2 is required. Cần trình duyệt hỗ trợ WebGPU hoặc WebGL2.
|
||||
|
||||
|
Can't render this file because it contains an unexpected character in line 200 and column 5.
|
@@ -4032,6 +4032,8 @@ imageTrace Outline 轮廓
|
||||
@msg unknown command `{0}`; did you mean `{1}`? 未知命令 `{0}`;您是否想输入 `{1}`?
|
||||
@msg `{what}` closes nothing `{what}` 没有可结束的内容
|
||||
@msg `{what}` closes something it didn't open `{what}` 结束了并非由它开始的内容
|
||||
@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 layer 它在图层内部结束
|
||||
@msg it has art outside its layers 它有位于图层之外的图稿
|
||||
|
||||
|
Can't render this file because it contains an unexpected character in line 2 and column 73.
|
@@ -1958,6 +1958,8 @@ file-filter Templates 範本
|
||||
@msg unknown command `{0}`; did you mean `{1}`? 未知的指令 `{0}`;您是指 `{1}` 嗎?
|
||||
@msg `{what}` closes nothing `{what}` 沒有可結束的內容
|
||||
@msg `{what}` closes something it didn't open `{what}` 結束了並非由它開始的內容
|
||||
@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 layer 它在圖層內部結束
|
||||
@msg it has art outside its layers 它有位於圖層之外的圖稿
|
||||
|
||||
|
Can't render this file because it contains an unexpected character in line 6 and column 47.
|
File diff suppressed because one or more lines are too long
Reference in New Issue
Block a user