Merge pull request #3101 from nrq6993-a11y/stream/vc-feat1-g4-type-scale-text-attributes

G4: Scale Text Attributes bakes object scale into type sizes
This commit is contained in:
BFlat
2026-10-22 00:00:00 +07:00
committed by GitHub
27 changed files with 143 additions and 0 deletions
+30
View File
@@ -1402,6 +1402,36 @@ impl TextObject {
Some(style)
}
/// Bakes the object's scale ([`style_scale`]) into character attributes and removes that
/// scale from `xf`, so panels show document-point sizes without a separate transform factor.
/// Returns `false` when there is nothing to bake (identity scale or an unrepresentable
/// transform).
pub fn scale_text_attributes(&mut self) -> bool {
let Some(scale) = self.style_scale() else { return false };
if (scale.points - 1.0).abs() <= 1e-12 && (scale.horizontal - 1.0).abs() <= 1e-12 {
return false;
}
let [a, b, c, d, _, _] = self.xf.as_coeffs();
let (sx, sy) = (a.hypot(b), c.hypot(d));
if sx <= 1e-12 || sy <= 1e-12 {
return false;
}
let mut baked = Vec::with_capacity(self.runs.len());
for run in &self.runs {
let Some(eff) = self.effective_char_style(&run.style) else { return false };
baked.push(eff);
}
for (run, style) in self.runs.iter_mut().zip(baked) {
run.style = style;
}
// Character strokes are drawn in text space: widen them by the vertical scale we remove.
self.scale_char_strokes(1.0 / sy);
self.xf *= Affine::scale_non_uniform(1.0 / sx, 1.0 / sy);
self.cached_bounds = None;
self.cached_baselines.clear();
true
}
pub fn point(origin: Point, text: &str, style: CharStyle) -> Self {
Self {
vertical: false,
+45
View File
@@ -34,6 +34,15 @@ pub fn specs() -> Vec<CommandSpec> {
has_selection,
create_outlines
),
cmd!(
"type.scaleTextAttributes",
"Scale Text Attributes",
["Type"],
None,
"{ids?|id?} bake each selected type object's transform scale into its character sizes (leading, baseline shift and horizontal scale included), leaving rotation and position in the affine → {ids, changed}",
scale_text_attributes_enabled,
scale_text_attributes
),
cmd!(
"type.opticalMarginAlignment",
"Optical Margin Alignment",
@@ -386,6 +395,42 @@ fn text_ids(d: &Document, ids: &[NodeId]) -> Vec<NodeId> {
out
}
fn scale_text_attributes_enabled(s: &Session) -> std::result::Result<(), String> {
has_selection(s)?;
let st = s.active().ok_or("no document open")?;
let ids = text_ids(&st.doc, &st.selection.objects);
if ids.iter().any(|id| {
st.doc.node(*id).is_some_and(|n| {
let NodeKind::Text(t) = &n.kind else { return false };
t.style_scale().is_some_and(|sc| (sc.points - 1.0).abs() > 1e-12 || (sc.horizontal - 1.0).abs() > 1e-12)
})
}) {
Ok(())
} else {
Err("Scale Text Attributes: selected type has no scale to bake".into())
}
}
fn scale_text_attributes(s: &mut Session, p: &Value) -> Result<Value> {
const C: &str = "type.scaleTextAttributes";
let ids = text_targets(s, p, C)?;
let changed = s.edit("Scale Text Attributes", |d, _| {
let mut n = 0usize;
for id in &ids {
let Some(NodeKind::Text(t)) = d.node_mut(*id).map(|node| &mut node.kind) else { continue };
if t.scale_text_attributes() {
refresh_bounds(t);
n += 1;
}
}
if n == 0 {
return Err(EngineError::Other("Scale Text Attributes: selected type has no scale to bake".into()));
}
Ok(n)
})?;
Ok(json!({ "ids": ids.iter().map(|i| i.0).collect::<Vec<_>>(), "changed": changed }))
}
fn create_outlines(s: &mut Session, _: &Value) -> Result<Value> {
let roots = selected_roots(s)?;
let ids = s.edit("Create Outlines", |d, sel| {
+21
View File
@@ -300,3 +300,24 @@ fn imported_type_with_sizes_outside_the_panels_range_opens_unchanged() {
s.execute("document.open", &json!({"name": "sizes.vectorcraft", "dataBase64": saved})).unwrap();
assert_eq!(texts(&s), imported);
}
#[test]
fn scale_text_attributes_bakes_group_scale_and_undoes() {
let mut s = session();
let id = create(&mut s, 12.0);
s.execute("object.group", &json!({})).unwrap();
s.execute("object.scale", &json!({"sx": 200})).unwrap();
near(em(&text(&s, id), 0).1, 24.0);
assert_eq!(text(&s, id).runs[0].style.size, 12.0);
s.execute("type.scaleTextAttributes", &json!({})).unwrap();
near(em(&text(&s, id), 0).1, 24.0);
near(text(&s, id).runs[0].style.size, 24.0);
assert!(text(&s, id).style_scale().is_none_or(|sc| (sc.points - 1.0).abs() <= 1e-9 && (sc.horizontal - 1.0).abs() <= 1e-9));
s.execute("text.setStyle", &json!({"size": 10})).unwrap();
near(em(&text(&s, id), 0).1, 10.0);
s.execute("edit.undo", &json!({})).unwrap();
near(em(&text(&s, id), 0).1, 24.0);
near(text(&s, id).runs[0].style.size, 24.0);
s.execute("edit.undo", &json!({})).unwrap();
near(text(&s, id).runs[0].style.size, 12.0);
}
+2
View File
@@ -2736,6 +2736,7 @@
Scale Cursor Proportional to UI Мащабиране на показалеца пропорционално на потребителския интерфейс
Scale Lineweights Мащабиране на дебелината на линиите
Scale Strokes & Effects Мащабиране на щрихи и ефекти
Scale Text Attributes Мащабиране на текстови атрибути
Scale to Fit Artboard Мащабиране за побиране в работната област
Scale Tool Инструмент „Мащабиране“
Scale: Мащаб:
@@ -5139,6 +5140,7 @@ theme Appearance Външен вид
@msg Measured anchor no longer exists Измерената опорна точка вече не съществува
@msg Measured segment no longer exists Измереният сегмент вече не съществува
@msg Non-finite dimension Размерът не е крайно число
@msg Scale Text Attributes: selected type has no scale to bake Мащабиране на текстови атрибути: избраният текст няма мащаб за прилагане
@msg Scale must be drawing:real, for example 1:10 Мащабът трябва да е чертеж:реалност, например 1:10
@msg Scale ratio must be between 1:1000000 and 1000000:1 Съотношението на мащаба трябва да е между 1:1000000 и 1000000:1
@msg Second measured segment no longer exists Вторият измерен сегмент вече не съществува
Can't render this file because it contains an unexpected character in line 2 and column 73.
+2
View File
@@ -3475,6 +3475,7 @@ theme Appearance Motiv
Scale Corners Měnit velikost rohů
Scale Cursor Proportional to UI Měnit velikost kurzoru úměrně rozhraní
Scale Strokes & Effects Měnit velikost tahů a efektů
Scale Text Attributes Měnit velikost atributů textu
Scratch Disks Odkládací disky
Secondary Sekundární
Select Same Tint % Vybírat stejné % tónu
@@ -5207,6 +5208,7 @@ mark-style Japanese Japonské
@msg Measured anchor no longer exists Měřený kotevní bod už neexistuje
@msg Measured segment no longer exists Měřený segment už neexistuje
@msg Non-finite dimension Kóta není konečné číslo
@msg Scale Text Attributes: selected type has no scale to bake Měnit velikost atributů textu: vybraný text nemá žádnou skalaci, kterou lze použít
@msg Scale must be drawing:real, for example 1:10 Měřítko musí mít tvar výkres:skutečnost, například 1:10
@msg Scale ratio must be between 1:1000000 and 1000000:1 Poměr měřítka musí být mezi 1:1000000 a 1000000:1
@msg Second measured segment no longer exists Druhý měřený segment už neexistuje
Can't render this file because it contains an unexpected character in line 2 and column 73.
+2
View File
@@ -3226,6 +3226,7 @@ theme Appearance Udseende
Scale Corners Skalér hjørner
Scale Cursor Proportional to UI Skalér markør proportionalt med brugergrænsefladen
Scale Strokes & Effects Skalér konturer & effekter
Scale Text Attributes Skalér tekstattributter
Scratch Disks Midlertidige diske
Secondary Sekundær
Select Same Tint % Markér samme farvetone %
@@ -4936,6 +4937,7 @@ mark-style Japanese Japansk
@msg Measured anchor no longer exists Det målte ankerpunkt findes ikke længere
@msg Measured segment no longer exists Det målte segment findes ikke længere
@msg Non-finite dimension Ikke-endeligt mål
@msg Scale Text Attributes: selected type has no scale to bake Skalér tekstattributter: den valgte tekst har ingen skalering at anvende
@msg Scale must be drawing:real, for example 1:10 Målestokken skal være tegning:virkelig, for eksempel 1:10
@msg Scale ratio must be between 1:1000000 and 1000000:1 Målestoksforholdet skal være mellem 1:1000000 og 1000000:1
@msg Second measured segment no longer exists Det andet målte segment findes ikke længere
Can't render this file because it contains an unexpected character in line 2 and column 73.
+2
View File
@@ -2765,6 +2765,7 @@ mark-style Japanese Japanisch
Scale Cursor Proportional to UI Cursor proportional zur Benutzeroberfläche skalieren
Scale Lineweights Linienstärken skalieren
Scale Strokes & Effects Konturen und Effekte skalieren
Scale Text Attributes Textattribute skalieren
Scale to Fit Artboard Auf Zeichenfläche skalieren
Scale Tool Skalieren-Werkzeug
Scale: Skalierung:
@@ -4785,6 +4786,7 @@ effect Soft Weich
@msg Measured anchor no longer exists Der gemessene Ankerpunkt existiert nicht mehr
@msg Measured segment no longer exists Das gemessene Segment existiert nicht mehr
@msg Non-finite dimension Die Bemaßung ist keine endliche Zahl
@msg Scale Text Attributes: selected type has no scale to bake Textattribute skalieren: Der ausgewählte Text weist keine zu übernehmende Skalierung auf
@msg Scale must be drawing:real, for example 1:10 Der Maßstab muss Zeichnung:Realität sein, zum Beispiel 1:10
@msg Scale ratio must be between 1:1000000 and 1000000:1 Das Maßstabsverhältnis muss zwischen 1:1000000 und 1000000:1 liegen
@msg Second measured segment no longer exists Das zweite gemessene Segment existiert nicht mehr
Can't render this file because it contains an unexpected character in line 2 and column 73.
+2
View File
@@ -3231,6 +3231,7 @@ theme Appearance Εμφάνιση
Scale Cursor Proportional to UI Αναλογική κλιμάκωση δείκτη ως προς το περιβάλλον
Scale Lineweights Κλιμάκωση πάχους γραμμών
Scale Strokes & Effects Κλιμάκωση περιγραμμάτων και εφέ
Scale Text Attributes Κλιμάκωση ιδιοτήτων κειμένου
Scale to Fit Artboard Κλιμάκωση για προσαρμογή στον πίνακα σχεδίασης
Scale Tool Κλιμάκωση (Scale Tool)
Scallop Tool Κυματιστές άκρες (Scallop Tool)
@@ -5158,6 +5159,7 @@ effect Points Σημεία
@msg Measured anchor no longer exists Το μετρημένο σημείο αγκύρωσης δεν υπάρχει πλέον
@msg Measured segment no longer exists Το μετρημένο τμήμα δεν υπάρχει πλέον
@msg Non-finite dimension Η διάσταση δεν είναι πεπερασμένος αριθμός
@msg Scale Text Attributes: selected type has no scale to bake Κλιμάκωση ιδιοτήτων κειμένου: το επιλεγμένο κείμενο δεν έχει κλίμακα προς εφαρμογή
@msg Scale must be drawing:real, for example 1:10 Η κλίμακα πρέπει να είναι σχέδιο:πραγματικό, για παράδειγμα 1:10
@msg Scale ratio must be between 1:1000000 and 1000000:1 Ο λόγος κλίμακας πρέπει να είναι μεταξύ 1:1000000 και 1000000:1
@msg Second measured segment no longer exists Το δεύτερο μετρημένο τμήμα δεν υπάρχει πλέον
Can't render this file because it contains an unexpected character in line 2031 and column 19.
+2
View File
@@ -2789,6 +2789,7 @@
Scale Cursor Proportional to UI Escalar el cursor en proporción a la interfaz
Scale Lineweights Escalar grosores de línea
Scale Strokes & Effects Escalar trazos y efectos
Scale Text Attributes Escalar atributos de texto
Scale to Fit Artboard Escalar para encajar en la mesa de trabajo
Scale Tool Herramienta Escalar
Scale: Escala:
@@ -5148,6 +5149,7 @@ mark-style Japanese Japonesas
@msg Measured anchor no longer exists El punto de ancla medido ya no existe
@msg Measured segment no longer exists El segmento medido ya no existe
@msg Non-finite dimension Cota no finita
@msg Scale Text Attributes: selected type has no scale to bake Escalar atributos de texto: el texto seleccionado no tiene escala que aplicar
@msg Scale must be drawing:real, for example 1:10 La escala debe ser dibujo:real, por ejemplo 1:10
@msg Scale ratio must be between 1:1000000 and 1000000:1 La relación de escala debe estar entre 1:1000000 y 1000000:1
@msg Second measured segment no longer exists El segundo segmento medido ya no existe
Can't render this file because it contains an unexpected character in line 2 and column 73.
+2
View File
@@ -3403,6 +3403,7 @@ theme Appearance Ulkoasu
Scale Corners Skaalaa kulmat
Scale Cursor Proportional to UI Skaalaa kohdistin suhteessa käyttöliittymään
Scale Strokes & Effects Skaalaa viivat ja tehosteet
Scale Text Attributes Skaalaa tekstin attribuutit
Scratch Disks Työlevyt
Secondary Toissijainen
Select Same Tint % Valitse sama sävyprosentti
@@ -5170,6 +5171,7 @@ mark-style Japanese Japanilainen
@msg Measured anchor no longer exists Mitattua ankkuripistettä ei ole enää
@msg Measured segment no longer exists Mitattua segmenttiä ei ole enää
@msg Non-finite dimension Mitta ei ole äärellinen luku
@msg Scale Text Attributes: selected type has no scale to bake Skaalaa tekstin attribuutit: valitulla tekstillä ei ole sovellettavaa skaalausta
@msg Scale must be drawing:real, for example 1:10 Mittakaavan on oltava muotoa piirustus:todellinen, esimerkiksi 1:10
@msg Scale ratio must be between 1:1000000 and 1000000:1 Mittakaavan suhteen on oltava välillä 1:1000000–1000000:1
@msg Second measured segment no longer exists Toista mitattua segmenttiä ei ole enää
Can't render this file because it contains an unexpected character in line 2 and column 73.
+2
View File
@@ -2786,6 +2786,7 @@
Scale Cursor Proportional to UI Mettre le curseur à l’échelle de l’interface
Scale Lineweights Mettre à l’échelle les épaisseurs de trait
Scale Strokes & Effects Mettre à l’échelle les contours et les effets
Scale Text Attributes Mettre à l’échelle les attributs de texte
Scale to Fit Artboard Mettre à l’échelle pour ajuster au plan de travail
Scale Tool Outil Mise à l’échelle
Scale: Échelle :
@@ -5206,6 +5207,7 @@ theme Appearance Apparence
@msg Measured anchor no longer exists Le point d’ancrage mesuré n’existe plus
@msg Measured segment no longer exists Le segment mesuré n’existe plus
@msg Non-finite dimension Cote non finie
@msg Scale Text Attributes: selected type has no scale to bake Mettre à l’échelle les attributs de texte : le texte sélectionné n’a pas d’échelle à intégrer
@msg Scale must be drawing:real, for example 1:10 L’échelle doit être dessin:réel, par exemple 1:10
@msg Scale ratio must be between 1:1000000 and 1000000:1 Le rapport d’échelle doit être compris entre 1:1000000 et 1000000:1
@msg Second measured segment no longer exists Le second segment mesuré n’existe plus
Can't render this file because it contains an unexpected character in line 2 and column 73.
+2
View File
@@ -3364,6 +3364,7 @@ mark-style Japanese Japán
Scale Lineweights Vonalvastagságok méretezése
Scale Proportionately Arányos méretezés
Scale Strokes & Effects Körvonalak és effektusok méretezése
Scale Text Attributes Szövegattribútumok méretezése
Scale Tints Tónusok skálázása
Scale to Fit Artboard Méretezés a rajztáblához
Scale Tool Méretezés
@@ -5192,6 +5193,7 @@ imageTrace Outline Körvonal
@msg Measured anchor no longer exists A mért horgonypont már nem létezik
@msg Measured segment no longer exists A mért szakasz már nem létezik
@msg Non-finite dimension Nem véges méret
@msg Scale Text Attributes: selected type has no scale to bake Szövegattribútumok méretezése: a kijelölt szövegnek nincs alkalmazható méretezése
@msg Scale must be drawing:real, for example 1:10 A léptéknek rajz:valós alakúnak kell lennie, például 1:10
@msg Scale ratio must be between 1:1000000 and 1000000:1 A lépték aránya 1:1000000 és 1000000:1 között lehet
@msg Second measured segment no longer exists A második mért szakasz már nem létezik
Can't render this file because it contains an unexpected character in line 2 and column 73.
+2
View File
@@ -3226,6 +3226,7 @@ theme Appearance Tampilan
Scale Corners Skalakan sudut
Scale Cursor Proportional to UI Skalakan kursor proporsional dengan UI
Scale Strokes & Effects Skalakan guratan & efek
Scale Text Attributes Skalakan atribut teks
Scratch Disks Disk scratch
Secondary Sekunder
Select Same Tint % Pilih tint yang sama %
@@ -4936,6 +4937,7 @@ mark-style Japanese Jepang
@msg Measured anchor no longer exists Titik jangkar yang diukur sudah tidak ada
@msg Measured segment no longer exists Segmen yang diukur sudah tidak ada
@msg Non-finite dimension Dimensi bukan bilangan berhingga
@msg Scale Text Attributes: selected type has no scale to bake Skalakan atribut teks: teks yang dipilih tidak memiliki skala untuk diterapkan
@msg Scale must be drawing:real, for example 1:10 Skala harus dalam format gambar:sebenarnya, misalnya 1:10
@msg Scale ratio must be between 1:1000000 and 1000000:1 Rasio skala harus antara 1:1000000 dan 1000000:1
@msg Second measured segment no longer exists Segmen yang diukur kedua sudah tidak ada
Can't render this file because it contains an unexpected character in line 3800 and column 19.
+2
View File
@@ -2823,6 +2823,7 @@ mark-style Japanese Giapponese
Scale Cursor Proportional to UI Scala il cursore in proporzione all'interfaccia
Scale Lineweights Scala spessori linea
Scale Strokes & Effects Scala tracce ed effetti
Scale Text Attributes Scala attributi di testo
Scale to Fit Artboard Scala per adattare alla tavola da disegno
Scale Tool Strumento Scala
Scale: Scala:
@@ -4819,6 +4820,7 @@ lighting Light Luce
@msg Measured anchor no longer exists Il punto di ancoraggio misurato non esiste più
@msg Measured segment no longer exists Il segmento misurato non esiste più
@msg Non-finite dimension Quota non finita
@msg Scale Text Attributes: selected type has no scale to bake Scala attributi di testo: il testo selezionato non ha una scala da incorporare
@msg Scale must be drawing:real, for example 1:10 La scala deve essere disegno:reale, ad esempio 1:10
@msg Scale ratio must be between 1:1000000 and 1000000:1 Il rapporto di scala deve essere compreso tra 1:1000000 e 1000000:1
@msg Second measured segment no longer exists Il secondo segmento misurato non esiste più
Can't render this file because it contains an unexpected character in line 2 and column 73.
+2
View File
@@ -2693,6 +2693,7 @@ mark-style Japanese 日本式
Scale Cursor Proportional to UI カーソルを UI の拡大率に合わせる
Scale Lineweights 線の太さを拡大・縮小
Scale Strokes & Effects 線幅と効果を拡大・縮小
Scale Text Attributes テキスト属性を拡大・縮小
Scale Tool 拡大・縮小ツール
Scale to Fit Artboard アートボードに合わせて拡大・縮小
Scale: 拡大・縮小:
@@ -4859,6 +4860,7 @@ lighting Light ライト
@msg Measured anchor no longer exists 測定したアンカーポイントはもう存在しません
@msg Measured segment no longer exists 測定したセグメントはもう存在しません
@msg Non-finite dimension 寸法が有限ではありません
@msg Scale Text Attributes: selected type has no scale to bake テキスト属性を拡大・縮小: 選択したテキストに取り込むスケールがありません
@msg Scale must be drawing:real, for example 1:10 縮尺は 図面:実寸 の形式にしてください (例: 1:10)
@msg Scale ratio must be between 1:1000000 and 1000000:1 縮尺の比率は 1:1000000 から 1000000:1 の間にしてください
@msg Second measured segment no longer exists 2 番目の測定セグメントはもう存在しません
Can't render this file because it contains an unexpected character in line 2 and column 73.
+2
View File
@@ -3036,6 +3036,7 @@ theme Appearance იერსახე
Scale Corners კუთხეების მასშტაბირება
Scale Cursor Proportional to UI კურსორის მასშტაბირება ინტერფეისის პროპორციულად
Scale Strokes & Effects კონტურებისა და ეფექტების მასშტაბირება
Scale Text Attributes ტექსტის ატრიბუტების მასშტაბირება
Scratch Disks სამუშაო დისკები
Secondary მეორადი
Select Same Tint % იგივე ტონირების % მონიშვნა
@@ -4846,6 +4847,7 @@ imageTrace Outline კონტური
@msg Measured anchor no longer exists გაზომილი საყრდენი წერტილი აღარ არსებობს
@msg Measured segment no longer exists გაზომილი სეგმენტი აღარ არსებობს
@msg Non-finite dimension ზომა სასრული რიცხვი არ არის
@msg Scale Text Attributes: selected type has no scale to bake ტექსტის ატრიბუტების მასშტაბირება: არჩეულ ტექსტს არ აქვს გადასაყვანი მასშტაბი
@msg Scale must be drawing:real, for example 1:10 მასშტაბი უნდა იყოს ნახაზი:რეალური, მაგალითად 1:10
@msg Scale ratio must be between 1:1000000 and 1000000:1 მასშტაბის შეფარდება 1:1000000-სა და 1000000:1-ს შორის უნდა იყოს
@msg Second measured segment no longer exists მეორე გაზომილი სეგმენტი აღარ არსებობს
Can't render this file because it contains an unexpected character in line 2 and column 73.
+2
View File
@@ -2687,6 +2687,7 @@ mark-style Japanese 일본식
Scale Cursor Proportional to UI UI에 비례해 커서 크기 조절
Scale Lineweights 선 두께 크기 조절
Scale Strokes & Effects 선 및 효과 크기 조절
Scale Text Attributes 텍스트 속성 크기 조절
Scale Tool 크기 조절 도구
Scale to Fit Artboard 아트보드에 맞게 크기 조절
Scale: 크기 조절:
@@ -4782,6 +4783,7 @@ lighting Light 광원
@msg Measured anchor no longer exists 측정한 고정점이 더 이상 없습니다
@msg Measured segment no longer exists 측정한 세그먼트가 더 이상 없습니다
@msg Non-finite dimension 유한하지 않은 치수
@msg Scale Text Attributes: selected type has no scale to bake 텍스트 속성 크기 조절: 선택한 텍스트에 적용할 크기 조절이 없습니다
@msg Scale must be drawing:real, for example 1:10 축척은 도면:실제 형식이어야 합니다(예: 1:10)
@msg Scale ratio must be between 1:1000000 and 1000000:1 축척 비율은 1:1000000에서 1000000:1 사이여야 합니다
@msg Second measured segment no longer exists 두 번째 측정 세그먼트가 더 이상 없습니다
Can't render this file because it contains an unexpected character in line 2 and column 73.
+2
View File
@@ -3240,6 +3240,7 @@ theme Appearance Vormgeving
Scale Corners Hoeken schalen
Scale Cursor Proportional to UI Cursor proportioneel schalen met UI
Scale Strokes & Effects Streken & effecten schalen
Scale Text Attributes Tekstkenmerken schalen
Scratch Disks Scratchschijven
Secondary Secundair
Select Same Tint % Zelfde tint % selecteren
@@ -4948,6 +4949,7 @@ mark-style Japanese Japans
@msg Measured anchor no longer exists Gemeten ankerpunt bestaat niet meer
@msg Measured segment no longer exists Gemeten segment bestaat niet meer
@msg Non-finite dimension Niet-eindige maatlijn
@msg Scale Text Attributes: selected type has no scale to bake Tekstkenmerken schalen: de geselecteerde tekst heeft geen schaling om toe te passen
@msg Scale must be drawing:real, for example 1:10 Schaal moet tekening:werkelijk zijn, bijvoorbeeld 1:10
@msg Scale ratio must be between 1:1000000 and 1000000:1 Schaalverhouding moet tussen 1:1000000 en 1000000:1 liggen
@msg Second measured segment no longer exists Tweede gemeten segment bestaat niet meer
Can't render this file because it contains an unexpected character in line 2 and column 73.
+2
View File
@@ -3337,6 +3337,7 @@ theme Appearance Wygląd
Scale Corners Skaluj narożniki
Scale Cursor Proportional to UI Skaluj kursor proporcjonalnie do interfejsu
Scale Strokes & Effects Skaluj obrysy i efekty
Scale Text Attributes Skaluj atrybuty tekstu
Scratch Disks Dyski robocze
Secondary Dodatkowy
Select Same Tint % Zaznaczaj ten sam % tinty
@@ -5057,6 +5058,7 @@ mark-style Japanese Japońskie
@msg Measured anchor no longer exists Mierzony punkt kontrolny już nie istnieje
@msg Measured segment no longer exists Mierzony odcinek już nie istnieje
@msg Non-finite dimension Wymiar nie jest liczbą skończoną
@msg Scale Text Attributes: selected type has no scale to bake Skaluj atrybuty tekstu: wybrany tekst nie ma skali do zastosowania
@msg Scale must be drawing:real, for example 1:10 Skala musi mieć postać rysunek:rzeczywistość, na przykład 1:10
@msg Scale ratio must be between 1:1000000 and 1000000:1 Współczynnik skali musi mieścić się między 1:1000000 a 1000000:1
@msg Second measured segment no longer exists Drugi mierzony odcinek już nie istnieje
Can't render this file because it contains an unexpected character in line 2 and column 73.
+2
View File
@@ -2313,6 +2313,7 @@
Scale Cursor Proportional to UI Dimensionar Cursor Proporcionalmente à Interface
Scale Lineweights Dimensionar Espessuras de Linha
Scale Strokes & Effects Dimensionar Traçados e Efeitos
Scale Text Attributes Dimensionar Atributos de Texto
Scale Tool Ferramenta Escala
Scale to Fit Artboard Dimensionar para Ajustar à Mesa de Trabalho
Scale: Escala:
@@ -5130,6 +5131,7 @@ mark-style Japanese Japonesas
@msg Measured anchor no longer exists O ponto de ancoragem medido não existe mais
@msg Measured segment no longer exists O segmento medido não existe mais
@msg Non-finite dimension Cota não finita
@msg Scale Text Attributes: selected type has no scale to bake Dimensionar Atributos de Texto: o texto selecionado não tem escala para aplicar
@msg Scale must be drawing:real, for example 1:10 A escala deve ser desenho:real, por exemplo 1:10
@msg Scale ratio must be between 1:1000000 and 1000000:1 A proporção da escala deve estar entre 1:1000000 e 1000000:1
@msg Second measured segment no longer exists O segundo segmento medido não existe mais
Can't render this file because it contains an unexpected character in line 6 and column 47.
+2
View File
@@ -2819,6 +2819,7 @@ mark-style Japanese Японский
Scale Cursor Proportional to UI Масштабировать курсор пропорционально интерфейсу
Scale Lineweights Масштабировать толщины линий
Scale Strokes & Effects Масштабировать обводки и эффекты
Scale Text Attributes Масштабировать атрибуты текста
Scale to Fit Artboard Масштабировать по монтажной области
Scale Tool Инструмент «Масштаб»
Scale: Масштаб:
@@ -4815,6 +4816,7 @@ lighting Light Свет
@msg Measured anchor no longer exists Измеряемая опорная точка больше не существует
@msg Measured segment no longer exists Измеряемый сегмент больше не существует
@msg Non-finite dimension Размер не является конечным числом
@msg Scale Text Attributes: selected type has no scale to bake Масштабировать атрибуты текста: у выбранного текста нет масштаба для применения
@msg Scale must be drawing:real, for example 1:10 Масштаб должен быть в виде чертёж:реальность, например 1:10
@msg Scale ratio must be between 1:1000000 and 1000000:1 Соотношение масштаба должно быть от 1:1000000 до 1000000:1
@msg Second measured segment no longer exists Второй измеряемый сегмент больше не существует
Can't render this file because it contains an unexpected character in line 2 and column 73.
+2
View File
@@ -2736,6 +2736,7 @@
Scale Cursor Proportional to UI Skala pekaren proportionellt mot gränssnittet
Scale Lineweights Skala linjebredder
Scale Strokes & Effects Skala konturer och effekter
Scale Text Attributes Skala textattribut
Scale to Fit Artboard Skala för att passa ritytan
Scale Tool Skalningsverktyg
Scale: Skala:
@@ -5162,6 +5163,7 @@ theme Appearance Utseende
@msg Measured anchor no longer exists Den mätta ankarpunkten finns inte längre
@msg Measured segment no longer exists Det mätta segmentet finns inte längre
@msg Non-finite dimension Måttet är inte ett ändligt tal
@msg Scale Text Attributes: selected type has no scale to bake Skala textattribut: det valda texten har ingen skalning att tillämpa
@msg Scale must be drawing:real, for example 1:10 Skalan måste anges som ritning:verklighet, till exempel 1:10
@msg Scale ratio must be between 1:1000000 and 1000000:1 Skalförhållandet måste ligga mellan 1:1000000 och 1000000:1
@msg Second measured segment no longer exists Det andra mätta segmentet finns inte längre
Can't render this file because it contains an unexpected character in line 5 and column 25.
+2
View File
@@ -2815,6 +2815,7 @@ mark-style Japanese Японський
Scale Cursor Proportional to UI Масштабувати курсор пропорційно до інтерфейсу
Scale Lineweights Масштабувати товщини ліній
Scale Strokes & Effects Масштабувати обведення та ефекти
Scale Text Attributes Масштабувати атрибути тексту
Scale to Fit Artboard Масштабувати по монтажній області
Scale Tool Інструмент «Масштаб»
Scale: Масштаб:
@@ -4799,6 +4800,7 @@ lighting Light Світло
@msg Measured anchor no longer exists Виміряна опорна точка більше не існує
@msg Measured segment no longer exists Виміряний сегмент більше не існує
@msg Non-finite dimension Розмір не є скінченним числом
@msg Scale Text Attributes: selected type has no scale to bake Масштабувати атрибути тексту: у вибраного тексту немає масштабу для застосування
@msg Scale must be drawing:real, for example 1:10 Масштаб має бути у вигляді креслення:реальність, наприклад 1:10
@msg Scale ratio must be between 1:1000000 and 1000000:1 Співвідношення масштабу має бути від 1:1000000 до 1000000:1
@msg Second measured segment no longer exists Другий виміряний сегмент більше не існує
Can't render this file because it contains an unexpected character in line 726 and column 40.
+2
View File
@@ -3119,6 +3119,7 @@ mark-style Japanese Kiểu Nhật
Scale Lineweights Tỷ lệ độ dày nét
Scale Proportionately Phóng to/thu nhỏ đều
Scale Strokes & Effects Tỷ lệ nét & hiệu ứng
Scale Text Attributes Tỷ lệ thuộc tính văn bản
Scale to Fit Artboard Tỷ lệ vừa bảng vẽ
Scale Tool Công cụ Tỷ lệ
Scale: Tỷ lệ:
@@ -4799,6 +4800,7 @@ theme Appearance Giao diện
@msg Measured anchor no longer exists Điểm neo được đo không còn tồn tại
@msg Measured segment no longer exists Đoạn được đo không còn tồn tại
@msg Non-finite dimension Kích thước không phải là số hữu hạn
@msg Scale Text Attributes: selected type has no scale to bake Tỷ lệ thuộc tính văn bản: văn bản được chọn không có tỷ lệ để áp dụng
@msg Scale must be drawing:real, for example 1:10 Tỷ lệ phải có dạng bản vẽ:thực tế, ví dụ 1:10
@msg Scale ratio must be between 1:1000000 and 1000000:1 Tỷ lệ phải nằm trong khoảng 1:1000000 đến 1000000:1
@msg Second measured segment no longer exists Đoạn được đo thứ hai không còn tồn tại
Can't render this file because it contains an unexpected character in line 4002 and column 10.
+2
View File
@@ -2671,6 +2671,7 @@ font-script Japanese 汉字
Scale Cursor Proportional to UI 光标随界面等比缩放
Scale Lineweights 缩放线宽
Scale Strokes & Effects 缩放描边和效果
Scale Text Attributes 缩放文本属性
Scale to Fit Artboard 缩放以适合画板
Scale Tool 比例缩放工具
Scale: 缩放:
@@ -4304,6 +4305,7 @@ imageTrace Outline 轮廓
@msg Measured anchor no longer exists 测量锚点已不存在
@msg Measured segment no longer exists 测量线段已不存在
@msg Non-finite dimension 尺寸标注不是有限值
@msg Scale Text Attributes: selected type has no scale to bake 缩放文本属性:所选文本没有可应用的缩放
@msg Scale must be drawing:real, for example 1:10 比例必须为 图纸:实际,例如 1:10
@msg Scale ratio must be between 1:1000000 and 1000000:1 比例必须介于 1:1000000 和 1000000:1 之间
@msg Second measured segment no longer exists 第二条测量线段已不存在
Can't render this file because it contains an unexpected character in line 2 and column 73.
+2
View File
@@ -2293,6 +2293,7 @@ file-filter Templates 範本
@msg Measured anchor no longer exists 測量的錨點已不存在
@msg Measured segment no longer exists 測量的線段已不存在
@msg Non-finite dimension 尺寸標註不是有限值
@msg Scale Text Attributes: selected type has no scale to bake 縮放文字屬性:所選文字沒有可套用的縮放
@msg Scale must be drawing:real, for example 1:10 比例必須為 圖紙:實際,例如 1:10
@msg Scale ratio must be between 1:1000000 and 1000000:1 比例必須介於 1:1000000 和 1000000:1 之間
@msg Second measured segment no longer exists 第二條測量線段已不存在
@@ -3570,6 +3571,7 @@ font-script Japanese 漢字
Scale Cursor Proportional to UI 游標依介面比例縮放
Scale Lineweights 縮放線條寬度
Scale Strokes & Effects 縮放筆畫與效果
Scale Text Attributes 縮放文字屬性
Scale to Fit Artboard 縮放至符合工作區域
Scale Tool 縮放工具
Scale: 縮放比例:
Can't render this file because it contains an unexpected character in line 6 and column 47.
+1
View File
@@ -2887,6 +2887,7 @@ pub fn menu_tree_named(english_names: bool) -> Vec<(&'static str, Vec<Item>)> {
cp("Smart Punctuation…", "type.smartPunctuation", json!({"quotes": true, "dashes": true, "ellipsis": true, "scope": "selection"})),
Sep,
c("Create Outlines", "type.createOutlines"),
c("Scale Text Attributes", "type.scaleTextAttributes"),
c("Optical Margin Alignment", "type.opticalMarginAlignment"),
Sep,
c("Fill with Placeholder Text", "type.fillPlaceholder"),