mirror of
https://github.com/storytold/vectorcraft.git
synced 2026-10-24 17:56:50 -06:00
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:
@@ -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,
|
||||
|
||||
@@ -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| {
|
||||
|
||||
@@ -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);
|
||||
}
|
||||
|
||||
@@ -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.
|
@@ -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.
|
@@ -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.
|
@@ -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.
|
@@ -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.
|
@@ -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.
|
@@ -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.
|
@@ -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.
|
@@ -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.
|
@@ -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.
|
@@ -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.
|
@@ -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.
|
@@ -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.
|
@@ -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.
|
@@ -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.
|
@@ -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.
|
@@ -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.
|
@@ -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.
|
@@ -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.
|
@@ -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.
|
@@ -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.
|
@@ -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.
|
@@ -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.
|
@@ -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"),
|
||||
|
||||
Reference in New Issue
Block a user