mirror of
https://github.com/storytold/vectorcraft.git
synced 2026-10-25 02:07:09 -06:00
@@ -61,7 +61,7 @@ fn lengths(kind: &str) -> &'static [&'static str] {
|
||||
"move" => &["dx", "dy", "distance"],
|
||||
"rectangle" | "ellipse" | "rectangularGrid" | "polarGrid" | "artboardOptions" => &["width", "height"],
|
||||
"roundedRectangle" => &["width", "height", "radius"],
|
||||
"polygon" => &["radius"],
|
||||
"polygon" | "spiral" => &["radius"],
|
||||
"star" => &["radius1", "radius2"],
|
||||
"lineSegment" => &["length"],
|
||||
"arc" => &["lengthX", "lengthY"],
|
||||
@@ -75,7 +75,7 @@ fn lengths(kind: &str) -> &'static [&'static str] {
|
||||
fn suffix(kind: &str, key: &str) -> Option<&'static str> {
|
||||
match (kind, key) {
|
||||
("rotate" | "shear" | "reflect" | "move" | "lineSegment", "angle") => Some("°"),
|
||||
("scale", "sx" | "sy") => Some("%"),
|
||||
("scale", "sx" | "sy") | ("spiral", "decay") => Some("%"),
|
||||
_ => None,
|
||||
}
|
||||
}
|
||||
@@ -96,6 +96,7 @@ fn order(kind: &str) -> &'static [&'static str] {
|
||||
"offsetPath" => &["offset", "joins", "miterLimit"],
|
||||
"rectangularGrid" => &["width", "height", "rows", "rowSkew", "columns", "columnSkew"],
|
||||
"polarGrid" => &["width", "height", "concentric", "concentricSkew", "radial", "radialSkew"],
|
||||
"spiral" => &["radius", "decay", "segments"],
|
||||
"artboardOptions" => &["name", "width", "height"],
|
||||
"lineSegment" => &["length", "angle"],
|
||||
_ => &[],
|
||||
|
||||
@@ -246,7 +246,7 @@ macro_rules! registry {
|
||||
registry! {
|
||||
DimensionOptions: [dimension::KIND] => dimension::SPEC,
|
||||
NewDocument: [new_document::KIND] => new_document::SPEC,
|
||||
Shape: ["rectangle", "roundedRectangle", "ellipse", "polygon", "star", "lineSegment", "arc", "rectangularGrid", "polarGrid"] => shapes::SPEC,
|
||||
Shape: ["rectangle", "roundedRectangle", "ellipse", "polygon", "star", "lineSegment", "arc", "spiral", "rectangularGrid", "polarGrid"] => shapes::SPEC,
|
||||
Transform: ["move", "rotate", "scale", "reflect", "shear"] => transform::SPEC,
|
||||
PathOp: ["average", "offsetPath", "simplify", "splitIntoGrid"] => path_ops::SPEC,
|
||||
DocumentSetup: ["documentSetup"] => document_setup::SPEC,
|
||||
|
||||
@@ -1,5 +1,5 @@
|
||||
//! Shape size dialogs (a click with a shape tool): Rectangle, Rounded Rectangle, Ellipse, Polygon,
|
||||
//! Star, Line Segment and Arc tool options, and the two grids (size, divider counts and skews, switches).
|
||||
//! Star, Line Segment, Arc and Spiral tool options, and the two grids (size, divider counts and skews, switches).
|
||||
|
||||
use serde_json::{Value, json};
|
||||
use vectorcraft_doc::Unit;
|
||||
@@ -20,6 +20,7 @@ fn title(kind: &str) -> &'static str {
|
||||
"ellipse" => tl!("Ellipse"),
|
||||
"polygon" => tl!("Polygon"),
|
||||
"star" => tl!("Star"),
|
||||
"spiral" => tl!("Spiral"),
|
||||
"rectangularGrid" => tl!("Rectangular Grid"),
|
||||
"polarGrid" => tl!("Polar Grid"),
|
||||
"arc" => tl!("Arc Segment Tool Options"),
|
||||
@@ -100,6 +101,11 @@ fn body(app: &mut VectorcraftApp, ui: &mut egui::Ui, d: &mut Dialog) -> bool {
|
||||
} else {
|
||||
form::grid(ui, d, unit);
|
||||
}
|
||||
if d.kind == "spiral" {
|
||||
ui.add_space(8.0);
|
||||
form::check(ui, d, "clockwise", tl!("Clockwise"));
|
||||
return false;
|
||||
}
|
||||
let own = match d.kind.as_str() {
|
||||
"rectangularGrid" => ("frame", tl!("Use Outside Rectangle As Frame")),
|
||||
"polarGrid" => ("compound", tl!("Create Compound Path From Ellipses")),
|
||||
@@ -200,6 +206,17 @@ fn confirm(app: &mut VectorcraftApp, d: &Dialog) -> Result<Value, String> {
|
||||
"shape.star",
|
||||
json!({"cx": x, "cy": y, "radius1": d.f64("radius1", 50.0), "radius2": d.f64("radius2", 25.0), "points": d.f64("points", 5.0) as u64}),
|
||||
),
|
||||
"spiral" => (
|
||||
"shape.spiral",
|
||||
json!({
|
||||
"cx": x,
|
||||
"cy": y,
|
||||
"radius": d.f64("radius", 50.0).max(0.01),
|
||||
"decay": d.f64("decay", 80.0).clamp(5.0, 150.0),
|
||||
"segments": (d.f64("segments", 10.0) as u64).clamp(2, 1000),
|
||||
"clockwise": d.bool("clockwise"),
|
||||
}),
|
||||
),
|
||||
kind @ ("rectangularGrid" | "polarGrid") => {
|
||||
// The switches as they are; the typed fields as numbers.
|
||||
let (mut p, (counts, skews)) = (form::params(d), grid_keys(kind));
|
||||
@@ -240,7 +257,7 @@ fn confirm(app: &mut VectorcraftApp, d: &Dialog) -> Result<Value, String> {
|
||||
),
|
||||
};
|
||||
// On the active plane while the perspective grid shows, sized in plane units from the click.
|
||||
let options = options.or_else(|| matches!(d.kind.as_str(), "rectangularGrid" | "polarGrid").then(|| params.clone()));
|
||||
let options = options.or_else(|| matches!(d.kind.as_str(), "spiral" | "rectangularGrid" | "polarGrid").then(|| params.clone()));
|
||||
let result = match vectorcraft_engine::perspective_click(&app.session, id, ¶ms, vectorcraft_geom::Point::new(x, y)) {
|
||||
Some((id, params)) => run_and_close(app, &id, params),
|
||||
None => run_and_close(app, id, params),
|
||||
@@ -254,6 +271,32 @@ fn confirm(app: &mut VectorcraftApp, d: &Dialog) -> Result<Value, String> {
|
||||
#[cfg(test)]
|
||||
mod tests {
|
||||
use super::*;
|
||||
use vectorcraft_engine::Session;
|
||||
|
||||
#[test]
|
||||
fn spiral_click_dialog_uses_and_updates_tool_options() {
|
||||
let mut app = VectorcraftApp::new(Session::new(), Default::default());
|
||||
app.run("file.new", json!({"width": 300, "height": 200})).unwrap();
|
||||
app.run("tool.select", json!({"tool": "spiral"})).unwrap();
|
||||
app.run("tool.setOption", json!({"tool": "spiral", "values": {"decay": 72.0, "segments": 14, "clockwise": false}})).unwrap();
|
||||
|
||||
super::super::open_tool_dialog(&mut app, "spiral", json!({"x": 40.0, "y": 60.0}));
|
||||
let d = app.ui.dialog.as_ref().expect("Spiral dialog");
|
||||
assert_eq!(d.kind, "spiral");
|
||||
assert_eq!((d.f64("x", 0.0), d.f64("y", 0.0), d.f64("radius", 0.0)), (40.0, 60.0, 50.0));
|
||||
assert_eq!((d.f64("decay", 0.0), d.f64("segments", 0.0), d.bool("clockwise")), (72.0, 14.0, false));
|
||||
|
||||
let d = app.ui.dialog.as_mut().unwrap();
|
||||
d.fields.insert("radius".into(), json!(35.0));
|
||||
d.fields.insert("decay".into(), json!(65.0));
|
||||
d.fields.insert("segments".into(), json!(12));
|
||||
d.fields.insert("clockwise".into(), json!(true));
|
||||
super::super::confirm(&mut app).unwrap();
|
||||
|
||||
assert!(app.ui.dialog.is_none());
|
||||
assert_eq!(app.session.doc().unwrap().doc.layers[0].children().unwrap().len(), 1);
|
||||
assert_eq!(app.session.tool_options_of("spiral"), json!({"decay": 65.0, "segments": 12, "clockwise": true}));
|
||||
}
|
||||
|
||||
#[test]
|
||||
fn alt_click_centres_the_typed_size_on_the_click() {
|
||||
|
||||
@@ -20,6 +20,20 @@ pub fn open_tool_dialog(app: &mut VectorcraftApp, kind: &str, p: Value) {
|
||||
Dialog::new(kind, json!({"x": x, "y": y, "radius1": "50 pt", "radius2": "25 pt", "points": app.session.tool_options_of(kind)["points"]}))
|
||||
}
|
||||
"lineSegment" => Dialog::new(kind, json!({"x": x, "y": y, "length": "100 pt", "angle": 0})),
|
||||
"spiral" => {
|
||||
let options = app.session.tool_options_of(kind);
|
||||
Dialog::new(
|
||||
kind,
|
||||
json!({
|
||||
"x": x,
|
||||
"y": y,
|
||||
"radius": "50 pt",
|
||||
"decay": options.get("decay").cloned().unwrap_or(json!(80.0)),
|
||||
"segments": options.get("segments").cloned().unwrap_or(json!(10)),
|
||||
"clockwise": options.get("clockwise").cloned().unwrap_or(json!(true)),
|
||||
}),
|
||||
)
|
||||
}
|
||||
"arc" => {
|
||||
let opts = app.session.tool_options_of(kind);
|
||||
let closed = opts.get("closed").and_then(Value::as_bool).unwrap_or(false);
|
||||
|
||||
@@ -5382,6 +5382,7 @@ axis Y Axis Y ос
|
||||
Packaged {n} file(s) in {folder} Пакетирани са {n} файла в {folder}
|
||||
Packaged {n} file(s) {note} Пакетирани са {n} файла {note}
|
||||
{count} file(s) in {folder}. Show the package folder? {count} файл(а) в {folder}. Показване на папката на пакета?
|
||||
Clockwise По часовниковата стрелка
|
||||
Dither Дитъринг
|
||||
Fine noise hides banding in the gradient fill Фин шум скрива ивиците в градиентната запълка
|
||||
@msg `dither` applies to gradient fills (stroke: false) `dither` се прилага към градиентни запълки (stroke: false)
|
||||
|
||||
|
Can't render this file because it contains an unexpected character in line 2 and column 73.
|
@@ -5427,6 +5427,7 @@ axis Y Axis osa Y
|
||||
Packaged {n} file(s) in {folder} Zabaleno souborů: {n} do {folder}
|
||||
Packaged {n} file(s) {note} Zabaleno souborů: {n} {note}
|
||||
{count} file(s) in {folder}. Show the package folder? Souborů: {count} v {folder}. Zobrazit složku balíčku?
|
||||
Clockwise Ve směru hodinových ručiček
|
||||
Dither Rozptýlení
|
||||
Fine noise hides banding in the gradient fill Jemný šum skryje pruhy ve výplni přechodem
|
||||
@msg `dither` applies to gradient fills (stroke: false) `dither` platí pro výplně přechodem (stroke: false)
|
||||
|
||||
|
Can't render this file because it contains an unexpected character in line 2 and column 73.
|
@@ -5398,6 +5398,7 @@ axis Y Axis Y-akse
|
||||
Packaged {n} file(s) in {folder} Pakkede {n} fil(er) i {folder}
|
||||
Packaged {n} file(s) {note} Pakkede {n} fil(er) {note}
|
||||
{count} file(s) in {folder}. Show the package folder? {count} fil(er) i {folder}. Vis pakkemappen?
|
||||
Clockwise Med uret
|
||||
Dither Dither
|
||||
Fine noise hides banding in the gradient fill Fin støj skjuler striber i gradientfyldet
|
||||
@msg `dither` applies to gradient fills (stroke: false) `dither` gælder for gradientfyld (stroke: false)
|
||||
|
||||
|
Can't render this file because it contains an unexpected character in line 2 and column 73.
|
@@ -5009,6 +5009,7 @@ axis Y Axis Y-Achse
|
||||
Packaged {n} file(s) in {folder} {n} Datei(en) in {folder} verpackt
|
||||
Packaged {n} file(s) {note} {n} Datei(en) verpackt {note}
|
||||
{count} file(s) in {folder}. Show the package folder? {count} Datei(en) in {folder}. Paketordner anzeigen?
|
||||
Clockwise Im Uhrzeigersinn
|
||||
Dither Dithering
|
||||
Fine noise hides banding in the gradient fill Feines Rauschen verbirgt Streifen in der Verlaufsfläche
|
||||
@msg `dither` applies to gradient fills (stroke: false) `dither` gilt für Verlaufsflächen (stroke: false)
|
||||
|
||||
|
Can't render this file because it contains an unexpected character in line 2 and column 73.
|
@@ -5379,6 +5379,7 @@ axis Y Axis Άξονας Y
|
||||
Packaged {n} file(s) in {folder} Συσκευάστηκαν {n} αρχεία στον φάκελο {folder}
|
||||
Packaged {n} file(s) {note} Συσκευάστηκαν {n} αρχεία {note}
|
||||
{count} file(s) in {folder}. Show the package folder? {count} αρχεία στον φάκελο {folder}. Να εμφανιστεί ο φάκελος συσκευασίας;
|
||||
Clockwise Δεξιόστροφα
|
||||
Dither Πρόσθεση θορύβου
|
||||
Fine noise hides banding in the gradient fill Ο λεπτός θόρυβος κρύβει τις λωρίδες στο γέμισμα ντεγκραντέ
|
||||
@msg `dither` applies to gradient fills (stroke: false) Το `dither` ισχύει για γεμίσματα ντεγκραντέ (stroke: false)
|
||||
|
||||
|
Can't render this file because it contains an unexpected character in line 2045 and column 19.
|
@@ -5369,6 +5369,7 @@ axis Y Axis Eje Y
|
||||
Packaged {n} file(s) in {folder} Se empaquetaron {n} archivo(s) en {folder}
|
||||
Packaged {n} file(s) {note} Se empaquetaron {n} archivo(s) {note}
|
||||
{count} file(s) in {folder}. Show the package folder? {count} archivo(s) en {folder}. ¿Mostrar la carpeta del paquete?
|
||||
Clockwise En sentido horario
|
||||
Dither Tramado
|
||||
Fine noise hides banding in the gradient fill Un ruido fino oculta las bandas del relleno de degradado
|
||||
@msg `dither` applies to gradient fills (stroke: false) `dither` se aplica a rellenos de degradado (stroke: false)
|
||||
|
||||
|
Can't render this file because it contains an unexpected character in line 2 and column 73.
|
@@ -5458,6 +5458,7 @@ axis Y Axis Y-akseli
|
||||
Packaged {n} file(s) in {folder} Paketoitiin {n} tiedosto(a) kansioon {folder}
|
||||
Packaged {n} file(s) {note} Paketoitiin {n} tiedosto(a) {note}
|
||||
{count} file(s) in {folder}. Show the package folder? {count} tiedosto(a) kansiossa {folder}. Näytetäänkö pakettikansio?
|
||||
Clockwise Myötäpäivään
|
||||
Dither Rasterointi
|
||||
Fine noise hides banding in the gradient fill Hieno kohina piilottaa raidat liukuväritäytöstä
|
||||
@msg `dither` applies to gradient fills (stroke: false) `dither` koskee liukuväritäyttöjä (stroke: false)
|
||||
|
||||
|
Can't render this file because it contains an unexpected character in line 2 and column 73.
|
@@ -5426,6 +5426,7 @@ axis Y Axis Axe Y
|
||||
Packaged {n} file(s) in {folder} {n} fichier(s) assemblé(s) dans {folder}
|
||||
Packaged {n} file(s) {note} {n} fichier(s) assemblé(s) {note}
|
||||
{count} file(s) in {folder}. Show the package folder? {count} fichier(s) dans {folder}. Afficher le dossier de l’assemblage ?
|
||||
Clockwise Sens horaire
|
||||
Dither Simulation
|
||||
Fine noise hides banding in the gradient fill Un bruit fin masque les bandes du fond en dégradé
|
||||
@msg `dither` applies to gradient fills (stroke: false) `dither` s’applique aux fonds en dégradé (stroke: false)
|
||||
|
||||
|
Can't render this file because it contains an unexpected character in line 2 and column 73.
|
@@ -5413,6 +5413,7 @@ axis Y Axis Y tengely
|
||||
Packaged {n} file(s) in {folder} Becsomagolt fájlok: {n}, mappa: {folder}
|
||||
Packaged {n} file(s) {note} Becsomagolt fájlok: {n} {note}
|
||||
{count} file(s) in {folder}. Show the package folder? Fájlok: {count}, mappa: {folder}. Megnyitod a csomag mappáját?
|
||||
Clockwise Óramutató járásával megegyező
|
||||
Dither Árnyalatkeverés
|
||||
Fine noise hides banding in the gradient fill A finom zaj elrejti a sávokat a színátmenetes kitöltésben
|
||||
@msg `dither` applies to gradient fills (stroke: false) A `dither` színátmenetes kitöltésekre vonatkozik (stroke: false)
|
||||
|
||||
|
Can't render this file because it contains an unexpected character in line 2 and column 73.
|
@@ -5398,6 +5398,7 @@ axis Y Axis Sumbu Y
|
||||
Packaged {n} file(s) in {folder} Berhasil mengemas {n} file di {folder}
|
||||
Packaged {n} file(s) {note} Berhasil mengemas {n} file {note}
|
||||
{count} file(s) in {folder}. Show the package folder? {count} file dalam {folder}. Tampilkan folder paket?
|
||||
Clockwise Searah jarum jam
|
||||
Dither Dither
|
||||
Fine noise hides banding in the gradient fill Derau halus menyembunyikan pita warna pada isian gradien
|
||||
@msg `dither` applies to gradient fills (stroke: false) `dither` berlaku untuk isian gradien (stroke: false)
|
||||
|
||||
|
Can't render this file because it contains an unexpected character in line 3816 and column 19.
|
@@ -5043,6 +5043,7 @@ axis Y Axis Asse Y
|
||||
Packaged {n} file(s) in {folder} Pacchetto creato con {n} file in {folder}
|
||||
Packaged {n} file(s) {note} Pacchetto creato con {n} file {note}
|
||||
{count} file(s) in {folder}. Show the package folder? {count} file in {folder}. Vuoi mostrare la cartella del pacchetto?
|
||||
Clockwise In senso orario
|
||||
Dither Dithering
|
||||
Fine noise hides banding in the gradient fill Un rumore fine nasconde le bande nel riempimento sfumato
|
||||
@msg `dither` applies to gradient fills (stroke: false) `dither` si applica ai riempimenti sfumati (stroke: false)
|
||||
|
||||
|
Can't render this file because it contains an unexpected character in line 2 and column 73.
|
@@ -5105,6 +5105,7 @@ axis Y Axis Y 軸
|
||||
Packaged {n} file(s) in {folder} {n} 個のファイルを {folder} にパッケージしました
|
||||
Packaged {n} file(s) {note} {n} 個のファイルをパッケージしました {note}
|
||||
{count} file(s) in {folder}. Show the package folder? {folder} に {count} 個のファイル。パッケージフォルダーを表示しますか?
|
||||
Clockwise 時計回り
|
||||
Dither ディザ
|
||||
Fine noise hides banding in the gradient fill 細かいノイズでグラデーションの塗りの縞を目立たなくします
|
||||
@msg `dither` applies to gradient fills (stroke: false) `dither` はグラデーションの塗りに適用されます (stroke: false)
|
||||
|
||||
|
Can't render this file because it contains an unexpected character in line 2 and column 73.
|
@@ -5343,6 +5343,7 @@ axis Y Axis Y ღერძი
|
||||
@msg this kind of brush has no options dialog yet ამ ტიპის ფუნჯს პარამეტრების დიალოგი ჯერ არ აქვს
|
||||
Drag art, colors and text styles here to reuse them across documents. Libraries are stored on this machine — no account required. გადმოათრიეთ აქ გრაფიკა, ფერები და ტექსტის სტილები, რომ სხვა დოკუმენტებშიც გამოიყენოთ. ბიბლიოთეკები ამ კომპიუტერზე ინახება — ანგარიში არ არის საჭირო.
|
||||
Choose a filter ფილტრის არჩევა
|
||||
Clockwise საათის ისრის მიმართულებით
|
||||
Dither დიზერინგი
|
||||
Fine noise hides banding in the gradient fill წვრილი ხმაური მალავს ზოლებს გრადიენტულ შევსებაში
|
||||
@msg `dither` applies to gradient fills (stroke: false) `dither` ვრცელდება გრადიენტულ შევსებებზე (stroke: false)
|
||||
|
||||
|
Can't render this file because it contains an unexpected character in line 2 and column 73.
|
@@ -5006,6 +5006,7 @@ axis Y Axis Y축
|
||||
Packaged {n} file(s) in {folder} {folder}에 파일 {n}개를 패키지했습니다
|
||||
Packaged {n} file(s) {note} 파일 {n}개를 패키지했습니다 {note}
|
||||
{count} file(s) in {folder}. Show the package folder? {folder}에 파일 {count}개. 패키지 폴더를 표시하시겠습니까?
|
||||
Clockwise 시계 방향
|
||||
Dither 디더
|
||||
Fine noise hides banding in the gradient fill 미세한 노이즈로 그레이디언트 칠의 띠를 감춥니다
|
||||
@msg `dither` applies to gradient fills (stroke: false) `dither`는 그레이디언트 칠에 적용됩니다 (stroke: false)
|
||||
|
||||
|
Can't render this file because it contains an unexpected character in line 2 and column 73.
|
@@ -5441,6 +5441,7 @@ axis Y Axis Y-as
|
||||
Packaged {n} file(s) in {folder} {n} bestand(en) verpakt in {folder}
|
||||
Packaged {n} file(s) {note} {n} bestand(en) verpakt {note}
|
||||
{count} file(s) in {folder}. Show the package folder? {count} bestand(en) in {folder}. De pakketmap openen?
|
||||
Clockwise Met de klok mee
|
||||
Dither Dither
|
||||
Fine noise hides banding in the gradient fill Fijne ruis verbergt banden in de verloopvulling
|
||||
@msg `dither` applies to gradient fills (stroke: false) `dither` geldt voor verloopvullingen (stroke: false)
|
||||
|
||||
|
Can't render this file because it contains an unexpected character in line 2 and column 73.
|
@@ -5279,6 +5279,7 @@ axis Y Axis Oś Y
|
||||
Packaged {n} file(s) in {folder} Spakowane pliki: {n} w {folder}
|
||||
Packaged {n} file(s) {note} Spakowane pliki: {n} {note}
|
||||
{count} file(s) in {folder}. Show the package folder? Pliki: {count} w {folder}. Pokazać folder pakietu?
|
||||
Clockwise Zgodnie z ruchem wskazówek zegara
|
||||
Dither Rozpraszanie
|
||||
Fine noise hides banding in the gradient fill Drobny szum ukrywa pasy w wypełnieniu gradientem
|
||||
@msg `dither` applies to gradient fills (stroke: false) `dither` dotyczy wypełnień gradientem (stroke: false)
|
||||
|
||||
|
Can't render this file because it contains an unexpected character in line 2 and column 73.
|
@@ -5344,6 +5344,7 @@ axis Y Axis Eixo Y
|
||||
Packaged {n} file(s) in {folder} {n} arquivo(s) empacotado(s) em {folder}
|
||||
Packaged {n} file(s) {note} {n} arquivo(s) empacotado(s) {note}
|
||||
{count} file(s) in {folder}. Show the package folder? {count} arquivo(s) em {folder}. Mostrar a pasta do pacote?
|
||||
Clockwise Sentido horário
|
||||
Dither Dither
|
||||
Fine noise hides banding in the gradient fill Um ruído fino esconde as faixas do preenchimento em gradiente
|
||||
@msg `dither` applies to gradient fills (stroke: false) `dither` se aplica a preenchimentos em gradiente (stroke: false)
|
||||
|
||||
|
Can't render this file because it contains an unexpected character in line 6 and column 47.
|
@@ -5039,6 +5039,7 @@ axis Y Axis Ось Y
|
||||
Packaged {n} file(s) in {folder} Упаковано файлов: {n} в {folder}
|
||||
Packaged {n} file(s) {note} Упаковано файлов: {n} {note}
|
||||
{count} file(s) in {folder}. Show the package folder? Файлов: {count} в {folder}. Показать папку пакета?
|
||||
Clockwise По часовой стрелке
|
||||
Dither Дизеринг
|
||||
Fine noise hides banding in the gradient fill Мелкий шум скрывает полосы в градиентной заливке
|
||||
@msg `dither` applies to gradient fills (stroke: false) `dither` применяется к градиентным заливкам (stroke: false)
|
||||
|
||||
|
Can't render this file because it contains an unexpected character in line 2 and column 73.
|
@@ -5383,6 +5383,7 @@ axis Y Axis Y-axel
|
||||
Packaged {n} file(s) in {folder} Paketerade {n} fil(er) i {folder}
|
||||
Packaged {n} file(s) {note} Paketerade {n} fil(er) {note}
|
||||
{count} file(s) in {folder}. Show the package folder? {count} fil(er) i {folder}. Visa paketmappen?
|
||||
Clockwise Medurs
|
||||
Dither Dithering
|
||||
Fine noise hides banding in the gradient fill Fint brus döljer bandningen i övertoningsfyllningen
|
||||
@msg `dither` applies to gradient fills (stroke: false) `dither` gäller övertoningsfyllningar (stroke: false)
|
||||
|
||||
|
Can't render this file because it contains an unexpected character in line 5 and column 25.
|
@@ -5391,6 +5391,7 @@ axis Y Axis Y ekseni
|
||||
Packaged {n} file(s) in {folder} {folder} biçiminde paketlenmiş {n} dosyası/dosyaları
|
||||
Packaged {n} file(s) {note} Paketlenmiş {n} dosyası/dosyaları {note}
|
||||
{count} file(s) in {folder}. Show the package folder? {folder} içindeki {count} dosyası/dosyaları. Paket klasörü gösterilsin mi?
|
||||
Clockwise Saat yönünde
|
||||
Dither Titreme
|
||||
Fine noise hides banding in the gradient fill İnce gürültü, degrade dolgudaki bantları gizler
|
||||
@msg `dither` applies to gradient fills (stroke: false) `dither` degrade dolgulara uygulanır (stroke: false)
|
||||
|
||||
|
Can't render this file because it contains an unexpected character in line 5 and column 25.
|
@@ -5023,6 +5023,7 @@ axis Y Axis Вісь Y
|
||||
Packaged {n} file(s) in {folder} Упаковано файли: {n} {folder}
|
||||
Packaged {n} file(s) {note} Упаковано файли: {n} {note}
|
||||
{count} file(s) in {folder}. Show the package folder? файлів: {count} {folder}. Показати папку пакета?
|
||||
Clockwise За годинниковою стрілкою
|
||||
Dither Дизеринг
|
||||
Fine noise hides banding in the gradient fill Дрібний шум приховує смуги в градієнтній заливці
|
||||
@msg `dither` applies to gradient fills (stroke: false) `dither` застосовується до градієнтних заливок (stroke: false)
|
||||
|
||||
|
Can't render this file because it contains an unexpected character in line 733 and column 40.
|
@@ -5023,6 +5023,7 @@ axis Y Axis Trục Y
|
||||
Packaged {n} file(s) in {folder} Đã đóng gói {n} tệp trong {folder}
|
||||
Packaged {n} file(s) {note} Đã đóng gói {n} tệp {note}
|
||||
{count} file(s) in {folder}. Show the package folder? {count} tệp trong {folder}. Hiện thư mục gói?
|
||||
Clockwise Theo chiều kim đồng hồ
|
||||
Dither Dither
|
||||
Fine noise hides banding in the gradient fill Nhiễu mịn che dải màu trong vùng tô chuyển sắc
|
||||
@msg `dither` applies to gradient fills (stroke: false) `dither` áp dụng cho vùng tô chuyển sắc (stroke: false)
|
||||
|
||||
|
Can't render this file because it contains an unexpected character in line 4028 and column 10.
|
@@ -5267,6 +5267,7 @@ axis Y Axis Y 轴
|
||||
Packaged {n} file(s) in {folder} 已将 {n} 个文件打包到 {folder}
|
||||
Packaged {n} file(s) {note} 已打包 {n} 个文件 {note}
|
||||
{count} file(s) in {folder}. Show the package folder? {folder} 中有 {count} 个文件。要显示打包文件夹吗?
|
||||
Clockwise 顺时针
|
||||
Dither 仿色
|
||||
Fine noise hides banding in the gradient fill 细微杂色可隐藏渐变填色中的色带
|
||||
@msg `dither` applies to gradient fills (stroke: false) `dither` 适用于渐变填色 (stroke: false)
|
||||
|
||||
|
Can't render this file because it contains an unexpected character in line 2 and column 73.
|
@@ -5062,6 +5062,7 @@ axis Y Axis Y 軸
|
||||
Packaged {n} file(s) in {folder} 已將 {n} 個檔案封裝到 {folder}
|
||||
Packaged {n} file(s) {note} 已封裝 {n} 個檔案 {note}
|
||||
{count} file(s) in {folder}. Show the package folder? {folder} 中有 {count} 個檔案。要顯示封裝資料夾嗎?
|
||||
Clockwise 順時針
|
||||
Dither 仿色
|
||||
Fine noise hides banding in the gradient fill 細微雜色可隱藏漸層填色中的色帶
|
||||
@msg `dither` applies to gradient fills (stroke: false) `dither` 適用於漸層填色 (stroke: false)
|
||||
|
||||
|
Can't render this file because it contains an unexpected character in line 6 and column 47.
|
Reference in New Issue
Block a user