mirror of
https://github.com/storytold/vectorcraft.git
synced 2026-11-11 10:44:26 +00:00
Plug-ins: a painted piece linked to a global swatch follows its color
A piece linked to a global swatch is drawn in the swatch's current color at its own tint, and kept art and rasters follow a color or spot edit and its Undo. A value of `paintOutput` other than true is refused by a translated error. Tests in the effects crate pass the new document argument.
This commit is contained in:
@@ -491,7 +491,7 @@ fn a_hidden_path_past_the_budget_leaves_a_layers_gradients_free_to_move() {
|
||||
let corners = json!({"corners": [[-4.5, -4.5], [5.5, -4.5], [5.5, 5.5], [-4.5, 5.5]]});
|
||||
for grow in [fx("distort.transform", json!({"scaleH": 1000, "scaleV": 1000})), fx("distort.freeDistort", corners)] {
|
||||
let mut art = layer();
|
||||
let carry = crate::reshape::reshape_leaves_within(&mut art, &[&grow], budget);
|
||||
let carry = crate::reshape::reshape_leaves_within(&mut art, &[&grow], budget, None);
|
||||
let circle = art.children().unwrap()[1].geometric_bounds().unwrap();
|
||||
assert!(circle.width() < 101.0, "{}: the hidden circle keeps its shape: {circle:?}", grow.id);
|
||||
let square = art.children().unwrap()[0].geometric_bounds().unwrap();
|
||||
@@ -500,7 +500,7 @@ fn a_hidden_path_past_the_budget_leaves_a_layers_gradients_free_to_move() {
|
||||
carry.apply(&mut own);
|
||||
assert_eq!(end(&own), Some(550.0), "{}: the layer's gradient, as the art", grow.id);
|
||||
let mut art = Node::group(NodeId(9), vec![Arc::new(layer())]);
|
||||
crate::reshape::reshape_leaves_within(&mut art, &[&grow], budget);
|
||||
crate::reshape::reshape_leaves_within(&mut art, &[&grow], budget, None);
|
||||
assert_eq!(end(&art.children().unwrap()[0].appearance), Some(550.0), "{}: the layer's gradient, inside the art", grow.id);
|
||||
}
|
||||
}
|
||||
@@ -531,7 +531,7 @@ fn edited_freeform_points_follow_a_transform_effect_and_free_distort() {
|
||||
inner.appearance.items.push(AppearanceItem::Fill(FillLayer::new(freeform.clone())));
|
||||
let mut art = Node::group(NodeId(9), vec![square(Appearance::basic(freeform.clone(), Paint::None, 0.0)), Arc::new(inner)]);
|
||||
art.appearance.items.push(AppearanceItem::Fill(FillLayer::new(freeform.clone())));
|
||||
let carry = crate::reshape::reshape_leaves_within(&mut art, &[&e], Budget::EFFECTS);
|
||||
let carry = crate::reshape::reshape_leaves_within(&mut art, &[&e], Budget::EFFECTS, None);
|
||||
let members = art.children().unwrap();
|
||||
assert_eq!(xs(&members[0].appearance), Some(vec![30.0, 130.0]), "{}: the path's points", e.id);
|
||||
assert_eq!(xs(&members[1].appearance), Some(vec![30.0, 130.0]), "{}: the inner group's points", e.id);
|
||||
|
||||
@@ -788,6 +788,32 @@ fn kept_art_follows_the_swatches_painted_pieces_name() {
|
||||
assert_eq!(draw(&s), (GREEN, WHITE), "the swatch back, the piece again");
|
||||
}
|
||||
|
||||
/// A piece linked to a global swatch shows the swatch's edited color, in art a renderer keeps and
|
||||
/// in a kept raster of a blur over it, and its earlier color after Undo.
|
||||
#[test]
|
||||
fn a_piece_linked_to_a_global_swatch_takes_its_edited_color() {
|
||||
for blur in [false, true] {
|
||||
let mut s = session();
|
||||
let id = rect(&mut s, 10.0, "#ff0000");
|
||||
install_wat(&mut s, &tpl::returning(&painting("test.engine.globalleaf", true), &leaf_square()));
|
||||
run(&mut s, "effect.apply", json!({"ids": [id.0], "effect": "plugin.test.engine.globalleaf"}));
|
||||
if blur {
|
||||
run(&mut s, "effect.apply", json!({"ids": [id.0], "effect": "blur.gaussian", "params": {"radius": 1}}));
|
||||
}
|
||||
run(&mut s, "select.none", json!({}));
|
||||
run(&mut s, "swatch.new", json!({"name": "Leaf", "color": "#00ff00", "global": true}));
|
||||
let mut r = vectorcraft_render::Renderer::new();
|
||||
let opts = vectorcraft_render::RenderOptions { background: Some([255, 255, 255, 255]), ..Default::default() };
|
||||
let mut at_piece = |s: &Session| r.render(&s.doc().unwrap().doc, 200, 200, vectorcraft_geom::Affine::IDENTITY, &opts).pixel(50, 50);
|
||||
assert!(near(at_piece(&s), GREEN), "the piece, in the swatch's color (blur {blur})");
|
||||
run(&mut s, "swatch.edit", json!({"name": "Leaf", "color": "#0000ff"}));
|
||||
let px = at_piece(&s);
|
||||
assert!(near(px, BLUE), "the swatch's new color (blur {blur}): {px:?}");
|
||||
run(&mut s, "edit.undo", json!({}));
|
||||
assert!(near(at_piece(&s), GREEN), "the swatch's color after Undo (blur {blur})");
|
||||
}
|
||||
}
|
||||
|
||||
/// Art a renderer keeps for an object whose plug-in starts to paint its pieces when it is replaced
|
||||
/// follows the swatches those pieces name from then on.
|
||||
#[test]
|
||||
|
||||
@@ -265,7 +265,8 @@ pub fn apply(id: &str, params: &Value, path: &PathData, bounds: Rect, rule: Fill
|
||||
/// Runs live-effect plug-in `id`, which declares `paintOutput`, as [`apply`] does: its painted
|
||||
/// pieces, each to draw by itself in order with the paints it gives ([`painted::appearance`],
|
||||
/// [`painted::items`]). Every swatch and pattern the pieces name must be in `doc`; without a
|
||||
/// document, pieces that name one are refused ([`painted::check_references`]). `None` when the
|
||||
/// document, pieces that name one are refused ([`painted::check_references`]). A paint linked to a
|
||||
/// global swatch has that swatch's current color. `None` when the
|
||||
/// plug-in isn't installed, doesn't declare `paintOutput`, fails, or Safe Mode is on; the caller then
|
||||
/// draws its input unchanged, and [`last_error`] says why a run failed (a refusal for want of a
|
||||
/// document is not recorded).
|
||||
@@ -281,7 +282,10 @@ pub fn apply_painted(
|
||||
let (plugin, out) = evaluate(id, params, path, bounds, rule, paints)?;
|
||||
let Out::Pieces(pieces) = out else { return None };
|
||||
references_found(id, &plugin, &pieces, doc)?;
|
||||
Some(pieces)
|
||||
Some(match doc {
|
||||
Some(d) => painted::with_swatch_colors(pieces, d),
|
||||
None => pieces,
|
||||
})
|
||||
}
|
||||
|
||||
/// `Some` when every swatch and pattern `pieces` name is in `doc` ([`painted::check_references`]),
|
||||
|
||||
@@ -262,18 +262,10 @@ pub struct Manifest {
|
||||
pub budget: Budget,
|
||||
/// A live effect at `api` 2 that returns painted pieces ([`crate::painted`]): `true` when the
|
||||
/// manifest has `"paintOutput": true`, the only value the key may hold.
|
||||
#[serde(default, rename = "paintOutput", deserialize_with = "true_only", skip_serializing_if = "std::ops::Not::not")]
|
||||
#[serde(default, rename = "paintOutput", skip_serializing_if = "std::ops::Not::not")]
|
||||
pub paint_output: bool,
|
||||
}
|
||||
|
||||
/// Reads a key that may only be `true` when present (`paintOutput`).
|
||||
fn true_only<'de, D: serde::Deserializer<'de>>(d: D) -> std::result::Result<bool, D::Error> {
|
||||
match Value::deserialize(d)? {
|
||||
Value::Bool(true) => Ok(true),
|
||||
_ => Err(serde::de::Error::custom("`paintOutput` may only be true")),
|
||||
}
|
||||
}
|
||||
|
||||
impl Manifest {
|
||||
/// Parses and validates manifest JSON.
|
||||
pub fn parse(bytes: &[u8]) -> Result<Manifest> {
|
||||
@@ -281,6 +273,9 @@ impl Manifest {
|
||||
return Err(Error::Manifest(format!("manifest is {} bytes (limit {MAX_MANIFEST_BYTES})", bytes.len())));
|
||||
}
|
||||
let text = std::str::from_utf8(bytes).map_err(|_| Error::Manifest("manifest is not UTF-8".into()))?;
|
||||
if serde_json::from_str::<Value>(text).is_ok_and(|v| v.get("paintOutput").is_some_and(|p| *p != Value::Bool(true))) {
|
||||
return Err(Error::Manifest("`paintOutput` may only be true".into()));
|
||||
}
|
||||
let man: Manifest = serde_json::from_str(text).map_err(|e| Error::Manifest(format!("manifest: {e}")))?;
|
||||
man.validate()?;
|
||||
Ok(man)
|
||||
|
||||
@@ -340,6 +340,56 @@ pub fn check_references(pieces: &[Piece], doc: Option<&Document>) -> Result<()>
|
||||
Ok(())
|
||||
}
|
||||
|
||||
/// The current color of a paint or stop linked to global swatch `name` at `tint`, when it differs
|
||||
/// from `color`.
|
||||
fn newer_color(color: Color, name: Option<&str>, tint: f32, doc: &Document) -> Option<Color> {
|
||||
doc.global_color(name?).map(|c| c.tinted(tint)).filter(|c| *c != color)
|
||||
}
|
||||
|
||||
/// Does `p` hold a color older than the global swatch it is linked to?
|
||||
fn behind_swatches(p: &Paint, doc: &Document) -> bool {
|
||||
match p {
|
||||
Paint::Solid { color, swatch, tint } => newer_color(*color, swatch.as_deref(), *tint, doc).is_some(),
|
||||
Paint::Gradient(g) => g.gradient.stops.iter().any(|s| newer_color(s.color, s.swatch.as_deref(), s.tint, doc).is_some()),
|
||||
Paint::None | Paint::Pattern { .. } => false,
|
||||
}
|
||||
}
|
||||
|
||||
/// Gives a solid paint or gradient stop of `p` linked to a global swatch that swatch's current
|
||||
/// color at its own tint.
|
||||
fn take_swatch_colors(p: &mut Paint, doc: &Document) {
|
||||
match p {
|
||||
Paint::Solid { color, swatch, tint } => {
|
||||
if let Some(c) = newer_color(*color, swatch.as_deref(), *tint, doc) {
|
||||
*color = c;
|
||||
}
|
||||
}
|
||||
Paint::Gradient(g) => {
|
||||
for s in &mut g.gradient.stops {
|
||||
if let Some(c) = newer_color(s.color, s.swatch.as_deref(), s.tint, doc) {
|
||||
s.color = c;
|
||||
}
|
||||
}
|
||||
}
|
||||
Paint::None | Paint::Pattern { .. } => {}
|
||||
}
|
||||
}
|
||||
|
||||
/// `pieces` with every paint linked to a global swatch of `doc` in that swatch's current color, as
|
||||
/// a global swatch edit changes linked art. A paint linked to a swatch that isn't global keeps the
|
||||
/// color the plug-in gave.
|
||||
pub(crate) fn with_swatch_colors(mut pieces: std::sync::Arc<Vec<Piece>>, doc: &Document) -> std::sync::Arc<Vec<Piece>> {
|
||||
let behind =
|
||||
|p: &Piece| p.fills.iter().flatten().any(|f| behind_swatches(f, doc)) || p.strokes.iter().flatten().any(|s| behind_swatches(&s.paint, doc));
|
||||
if pieces.iter().any(behind) {
|
||||
for p in std::sync::Arc::make_mut(&mut pieces) {
|
||||
p.fills.iter_mut().flatten().for_each(|f| take_swatch_colors(f, doc));
|
||||
p.strokes.iter_mut().flatten().for_each(|s| take_swatch_colors(&mut s.paint, doc));
|
||||
}
|
||||
}
|
||||
pieces
|
||||
}
|
||||
|
||||
/// How many paints, gradient stops and freeform points `pieces` hold: what a cache counts them as
|
||||
/// besides their anchors.
|
||||
pub(crate) fn paint_count(pieces: &[Piece]) -> usize {
|
||||
|
||||
@@ -41,6 +41,37 @@ fn pieces_keep_their_own_paints_in_order() {
|
||||
assert_eq!((pieces[2].rule, &pieces[2].fills, &pieces[2].strokes), (FillRule::NonZero, &None, &None));
|
||||
}
|
||||
|
||||
/// A solid paint or gradient stop linked to a global swatch takes the swatch's color at its own
|
||||
/// tint. A link to a swatch that isn't global and a paint without a link keep the color given.
|
||||
#[test]
|
||||
fn linked_paints_take_the_global_swatch_color() {
|
||||
let brand = Color::rgb(0.2, 0.4, 0.6);
|
||||
let mut doc = Document::new(100.0, 100.0);
|
||||
doc.swatches.push(Swatch { name: "Brand".into(), paint: Paint::solid(brand), global: true, spot: false });
|
||||
doc.swatches.push(Swatch { name: "Plain".into(), paint: Paint::solid(brand), global: false, spot: false });
|
||||
let given = json!({"model": "rgb", "r": 1, "g": 1, "b": 0});
|
||||
let solid = |extra: Value| {
|
||||
let mut p = json!({"type": "solid", "color": given});
|
||||
p.as_object_mut().unwrap().extend(extra.as_object().unwrap().clone());
|
||||
p
|
||||
};
|
||||
let stop = json!({"offset": 0, "color": given, "swatch": "Brand", "tint": 0.5});
|
||||
let gradient = json!({"type": "gradient", "gradient": {"kind": "Linear", "stops": [stop]}});
|
||||
let fills = json!([solid(json!({"swatch": "Brand", "tint": 0.5})), solid(json!({"swatch": "Plain"})), solid(json!({})), gradient]);
|
||||
let strokes = json!([{"paint": solid(json!({"swatch": "Brand"}))}]);
|
||||
let pieces = decode(&out(json!([{"path": square(), "fills": fills, "strokes": strokes}])), Scope::Object, FillRule::NonZero).unwrap();
|
||||
let pieces = with_swatch_colors(std::sync::Arc::new(pieces), &doc);
|
||||
let color = |p: &Paint| match p {
|
||||
Paint::Solid { color, .. } => *color,
|
||||
Paint::Gradient(g) => g.gradient.stops[0].color,
|
||||
_ => panic!("{p:?}"),
|
||||
};
|
||||
let fills = pieces[0].fills.as_ref().unwrap();
|
||||
let old = Color::rgb(1.0, 1.0, 0.0);
|
||||
assert_eq!([color(&fills[0]), color(&fills[1]), color(&fills[2]), color(&fills[3])], [brand.tinted(0.5), old, old, brand.tinted(0.5)]);
|
||||
assert_eq!(color(&pieces[0].strokes.as_ref().unwrap()[0].paint), brand);
|
||||
}
|
||||
|
||||
/// What a piece is drawn with: the object's appearance with the paints the piece gives in place of
|
||||
/// its own (kept, cleared or replaced), and for an effect on one fill or stroke, copies of that item.
|
||||
#[test]
|
||||
|
||||
@@ -11,10 +11,18 @@ use super::{
|
||||
RasterFx, Rect, RenderContext, Renderer, Shape, blend_mode, effects, fill_rule, paint, peniko,
|
||||
};
|
||||
|
||||
/// A hash of the names of `doc`'s swatches and patterns.
|
||||
/// A hash of the names of `doc`'s swatches and patterns, of the paints and spot flags of its global
|
||||
/// swatches, and of the Spot Colors option those colors depend on.
|
||||
pub(crate) fn paint_names(doc: &Document) -> u64 {
|
||||
let mut h = DefaultHasher::new();
|
||||
doc.swatches_iter().for_each(|s| s.name.hash(&mut h));
|
||||
doc.spot_use_lab.hash(&mut h);
|
||||
doc.swatches_iter().for_each(|s| {
|
||||
s.name.hash(&mut h);
|
||||
if s.global {
|
||||
s.spot.hash(&mut h);
|
||||
format!("{:?}", s.paint).hash(&mut h);
|
||||
}
|
||||
});
|
||||
doc.patterns.iter().for_each(|p| p.name.hash(&mut h));
|
||||
h.finish()
|
||||
}
|
||||
|
||||
@@ -7,6 +7,30 @@ use super::{DRAG_PIXEL_BUDGET, Drawn, PIXEL_BUDGET, drag_scale, filter_region, f
|
||||
use crate::tests_fontchange::{fonts_steady, with_fonts_unchanged};
|
||||
use crate::{RenderOptions, Rendered, Renderer};
|
||||
|
||||
/// The hash renderers compare to redraw art linked to swatches changes with a global swatch's
|
||||
/// color and spot flag and with the Spot Colors option.
|
||||
#[test]
|
||||
fn paint_names_follow_global_swatch_colors_and_spot_flags() {
|
||||
let mut d = Document::new(100.0, 100.0);
|
||||
d.swatches.push(vectorcraft_doc::color::Swatch {
|
||||
name: "Brand".into(),
|
||||
paint: Paint::solid(Color::rgb(1.0, 0.0, 0.0)),
|
||||
global: true,
|
||||
spot: false,
|
||||
});
|
||||
let last = d.swatches.len() - 1;
|
||||
let first = super::paint_names(&d);
|
||||
d.swatches[last].spot = true;
|
||||
assert_ne!(super::paint_names(&d), first, "spot flag");
|
||||
d.swatches[last].spot = false;
|
||||
assert_eq!(super::paint_names(&d), first, "nothing changed");
|
||||
d.swatches[last].paint = Paint::solid(Color::rgb(0.0, 0.0, 1.0));
|
||||
assert_ne!(super::paint_names(&d), first, "color");
|
||||
d.swatches[last].paint = Paint::solid(Color::rgb(1.0, 0.0, 0.0));
|
||||
d.spot_use_lab = !d.spot_use_lab;
|
||||
assert_ne!(super::paint_names(&d), first, "Spot Colors option");
|
||||
}
|
||||
|
||||
/// #1706: the raster a shadow or glow is filtered in stays within the pixel budget however
|
||||
/// far the blur spreads at the zoom (it was up to 65535 pixels a side: 16 GB).
|
||||
#[test]
|
||||
|
||||
@@ -5910,6 +5910,7 @@ digits Malayalam Malaiàlam
|
||||
@msg the module imports `env.{name}`, which a plug-in may use only at plug-in API level {PROGRESS_API} (`api` {PROGRESS_API}) and with the permission `{permission}` el mòdul importa `env.{name}`, que un complement només pot fer servir al nivell d’API de complements {PROGRESS_API} (`api` {PROGRESS_API}) i amb el permís `{permission}`
|
||||
@msg the module imports `{from}.{name}`, which the host doesn't offer: a plug-in may import only the `env.vc_*` functions that docs/plugins.md lists (plug-in API level 2), and no WASI, files or network el mòdul importa `{from}.{name}`, que l’amfitrió no ofereix: un complement només pot importar les funcions `env.vc_*` que enumera docs/plugins.md (nivell d’API de complements 2), i cap WASI, fitxer ni xarxa
|
||||
@msg `api` is {_1}; this host implements plug-in API levels 1 to {API_LEVEL} `api` és {_1}; aquest amfitrió admet els nivells d’API de complements de l’1 al {API_LEVEL}
|
||||
@msg `paintOutput` may only be true `paintOutput` només pot ser true
|
||||
@msg `paintOutput` is only for a live effect (`kind` "effect") at `api` 2 `paintOutput` només és per a un efecte dinàmic (`kind` "effect") amb `api` 2
|
||||
@msg `grant` must be a list of permission names `grant` ha de ser una llista de noms de permisos
|
||||
@msg `grant` names an unknown permission `{shown}` `grant` esmenta un permís desconegut `{shown}`
|
||||
|
||||
|
Can't render this file because it contains an unexpected character in line 2 and column 73.
|
@@ -5897,6 +5897,7 @@ axis Y Axis osa Y
|
||||
@msg the module imports `env.{name}`, which a plug-in may use only at plug-in API level {PROGRESS_API} (`api` {PROGRESS_API}) and with the permission `{permission}` modul importuje `env.{name}`, který zásuvný modul smí používat jen na úrovni API zásuvných modulů {PROGRESS_API} (`api` {PROGRESS_API}) a s oprávněním `{permission}`
|
||||
@msg the module imports `{from}.{name}`, which the host doesn't offer: a plug-in may import only the `env.vc_*` functions that docs/plugins.md lists (plug-in API level 2), and no WASI, files or network modul importuje `{from}.{name}`, který hostitel nenabízí: zásuvný modul smí importovat jen funkce `env.vc_*`, které uvádí docs/plugins.md (úroveň API zásuvných modulů 2), a žádné WASI, soubory ani síť
|
||||
@msg `api` is {_1}; this host implements plug-in API levels 1 to {API_LEVEL} `api` je {_1}; tento hostitel podporuje úrovně API zásuvných modulů 1 až {API_LEVEL}
|
||||
@msg `paintOutput` may only be true `paintOutput` může být jen true
|
||||
@msg `paintOutput` is only for a live effect (`kind` "effect") at `api` 2 `paintOutput` je jen pro živý efekt (`kind` "effect") s `api` 2
|
||||
@msg `grant` must be a list of permission names `grant` musí být seznam názvů oprávnění
|
||||
@msg `grant` names an unknown permission `{shown}` `grant` uvádí neznámé oprávnění `{shown}`
|
||||
|
||||
|
Can't render this file because it contains an unexpected character in line 2 and column 73.
|
@@ -5479,6 +5479,7 @@ axis Y Axis Y-Achse
|
||||
@msg the module imports `env.{name}`, which a plug-in may use only at plug-in API level {PROGRESS_API} (`api` {PROGRESS_API}) and with the permission `{permission}` das Modul importiert `env.{name}`, das ein Plug-in nur auf der Plug-in-API-Stufe {PROGRESS_API} (`api` {PROGRESS_API}) und mit der Berechtigung `{permission}` verwenden darf
|
||||
@msg the module imports `{from}.{name}`, which the host doesn't offer: a plug-in may import only the `env.vc_*` functions that docs/plugins.md lists (plug-in API level 2), and no WASI, files or network das Modul importiert `{from}.{name}`, das der Host nicht anbietet: Ein Plug-in darf nur die `env.vc_*`-Funktionen importieren, die docs/plugins.md aufführt (Plug-in-API-Stufe 2), aber kein WASI, keine Dateien und kein Netzwerk
|
||||
@msg `api` is {_1}; this host implements plug-in API levels 1 to {API_LEVEL} `api` ist {_1}; dieser Host unterstützt die Plug-in-API-Stufen 1 bis {API_LEVEL}
|
||||
@msg `paintOutput` may only be true `paintOutput` darf nur true sein
|
||||
@msg `paintOutput` is only for a live effect (`kind` "effect") at `api` 2 `paintOutput` gilt nur für einen Live-Effekt (`kind` "effect") mit `api` 2
|
||||
@msg `grant` must be a list of permission names `grant` muss eine Liste von Berechtigungsnamen sein
|
||||
@msg `grant` names an unknown permission `{shown}` `grant` nennt eine unbekannte Berechtigung `{shown}`
|
||||
|
||||
|
Can't render this file because it contains an unexpected character in line 2 and column 73.
|
@@ -5848,6 +5848,7 @@ axis Y Axis Άξονας Y
|
||||
@msg the module imports `env.{name}`, which a plug-in may use only at plug-in API level {PROGRESS_API} (`api` {PROGRESS_API}) and with the permission `{permission}` η λειτουργική μονάδα εισάγει το `env.{name}`, το οποίο ένα πρόσθετο μπορεί να χρησιμοποιεί μόνο στο επίπεδο API προσθέτων {PROGRESS_API} (`api` {PROGRESS_API}) και με το δικαίωμα `{permission}`
|
||||
@msg the module imports `{from}.{name}`, which the host doesn't offer: a plug-in may import only the `env.vc_*` functions that docs/plugins.md lists (plug-in API level 2), and no WASI, files or network η λειτουργική μονάδα εισάγει το `{from}.{name}`, το οποίο δεν προσφέρει ο κεντρικός υπολογιστής: ένα πρόσθετο μπορεί να εισάγει μόνο τις συναρτήσεις `env.vc_*` που απαριθμεί το docs/plugins.md (επίπεδο API προσθέτων 2) και κανένα WASI, αρχεία ή δίκτυο
|
||||
@msg `api` is {_1}; this host implements plug-in API levels 1 to {API_LEVEL} το `api` είναι {_1}· αυτός ο κεντρικός υπολογιστής υποστηρίζει τα επίπεδα API προσθέτων 1 έως {API_LEVEL}
|
||||
@msg `paintOutput` may only be true Το `paintOutput` μπορεί να είναι μόνο true
|
||||
@msg `paintOutput` is only for a live effect (`kind` "effect") at `api` 2 το `paintOutput` ισχύει μόνο για ζωντανό εφέ (`kind` "effect") με `api` 2
|
||||
@msg `grant` must be a list of permission names το `grant` πρέπει να είναι λίστα ονομάτων δικαιωμάτων
|
||||
@msg `grant` names an unknown permission `{shown}` το `grant` αναφέρει άγνωστο δικαίωμα `{shown}`
|
||||
|
||||
|
Can't render this file because it contains an unexpected character in line 168 and column 5.
|
@@ -5838,6 +5838,7 @@ axis Y Axis Eje Y
|
||||
@msg the module imports `env.{name}`, which a plug-in may use only at plug-in API level {PROGRESS_API} (`api` {PROGRESS_API}) and with the permission `{permission}` el módulo importa `env.{name}`, que un plugin solo puede usar en el nivel de API de plugins {PROGRESS_API} (`api` {PROGRESS_API}) y con el permiso `{permission}`
|
||||
@msg the module imports `{from}.{name}`, which the host doesn't offer: a plug-in may import only the `env.vc_*` functions that docs/plugins.md lists (plug-in API level 2), and no WASI, files or network el módulo importa `{from}.{name}`, que el host no ofrece: un plugin solo puede importar las funciones `env.vc_*` que enumera docs/plugins.md (nivel de API de plugins 2), y ningún WASI, archivo ni red
|
||||
@msg `api` is {_1}; this host implements plug-in API levels 1 to {API_LEVEL} `api` es {_1}; este host admite los niveles de API de plugins de 1 a {API_LEVEL}
|
||||
@msg `paintOutput` may only be true `paintOutput` solo puede ser true
|
||||
@msg `paintOutput` is only for a live effect (`kind` "effect") at `api` 2 `paintOutput` solo es para un efecto dinámico (`kind` "effect") con `api` 2
|
||||
@msg `grant` must be a list of permission names `grant` debe ser una lista de nombres de permisos
|
||||
@msg `grant` names an unknown permission `{shown}` `grant` nombra un permiso desconocido `{shown}`
|
||||
|
||||
|
Can't render this file because it contains an unexpected character in line 2 and column 73.
|
@@ -5927,6 +5927,7 @@ axis Y Axis Y-akseli
|
||||
@msg the module imports `env.{name}`, which a plug-in may use only at plug-in API level {PROGRESS_API} (`api` {PROGRESS_API}) and with the permission `{permission}` moduuli tuo kohteen `env.{name}`, jota laajennus saa käyttää vain laajennus-API:n tasolla {PROGRESS_API} (`api` {PROGRESS_API}) ja käyttöoikeudella `{permission}`
|
||||
@msg the module imports `{from}.{name}`, which the host doesn't offer: a plug-in may import only the `env.vc_*` functions that docs/plugins.md lists (plug-in API level 2), and no WASI, files or network moduuli tuo kohteen `{from}.{name}`, jota isäntä ei tarjoa: laajennus saa tuoda vain docs/plugins.md-tiedostossa luetellut `env.vc_*`-funktiot (laajennus-API:n taso 2) eikä mitään WASIa, tiedostoja tai verkkoa
|
||||
@msg `api` is {_1}; this host implements plug-in API levels 1 to {API_LEVEL} `api` on {_1}; tämä isäntä tukee laajennus-API:n tasoja 1 ja {API_LEVEL} välillä
|
||||
@msg `paintOutput` may only be true `paintOutput` voi olla vain true
|
||||
@msg `paintOutput` is only for a live effect (`kind` "effect") at `api` 2 `paintOutput` on vain reaaliaikaiselle tehosteelle (`kind` "effect") tasolla `api` 2
|
||||
@msg `grant` must be a list of permission names `grant` on oltava luettelo käyttöoikeuksien nimistä
|
||||
@msg `grant` names an unknown permission `{shown}` `grant` nimeää tuntemattoman käyttöoikeuden `{shown}`
|
||||
|
||||
|
Can't render this file because it contains an unexpected character in line 2 and column 73.
|
@@ -5892,6 +5892,7 @@ axis Y Axis Axe Y
|
||||
@msg the module imports `env.{name}`, which a plug-in may use only at plug-in API level {PROGRESS_API} (`api` {PROGRESS_API}) and with the permission `{permission}` le module importe `env.{name}`, qu’un module externe ne peut utiliser qu’au niveau d’API de module externe {PROGRESS_API} (`api` {PROGRESS_API}) et avec l’autorisation `{permission}`
|
||||
@msg the module imports `{from}.{name}`, which the host doesn't offer: a plug-in may import only the `env.vc_*` functions that docs/plugins.md lists (plug-in API level 2), and no WASI, files or network le module importe `{from}.{name}`, que l’hôte ne propose pas : un module externe ne peut importer que les fonctions `env.vc_*` que liste docs/plugins.md (niveau d’API de module externe 2), et aucun WASI, fichier ni réseau
|
||||
@msg `api` is {_1}; this host implements plug-in API levels 1 to {API_LEVEL} `api` vaut {_1} ; cet hôte prend en charge les niveaux d’API de module externe 1 à {API_LEVEL}
|
||||
@msg `paintOutput` may only be true `paintOutput` ne peut valoir que true
|
||||
@msg `paintOutput` is only for a live effect (`kind` "effect") at `api` 2 `paintOutput` est réservé à un effet dynamique (`kind` "effect") avec `api` 2
|
||||
@msg `grant` must be a list of permission names `grant` doit être une liste de noms d’autorisations
|
||||
@msg `grant` names an unknown permission `{shown}` `grant` nomme une autorisation inconnue `{shown}`
|
||||
|
||||
|
Can't render this file because it contains an unexpected character in line 2 and column 73.
|
@@ -5257,6 +5257,7 @@
|
||||
@msg the module imports `env.{name}`, which a plug-in may use only at plug-in API level {PROGRESS_API} (`api` {PROGRESS_API}) and with the permission `{permission}` मॉड्यूल `env.{name}` आयात करता है, जिसे प्लग-इन केवल प्लग-इन API स्तर {PROGRESS_API} (`api` {PROGRESS_API}) पर और अनुमति `{permission}` के साथ उपयोग कर सकता है
|
||||
@msg the module imports `{from}.{name}`, which the host doesn't offer: a plug-in may import only the `env.vc_*` functions that docs/plugins.md lists (plug-in API level 2), and no WASI, files or network मॉड्यूल `{from}.{name}` आयात करता है, जिसे होस्ट उपलब्ध नहीं कराता: प्लग-इन केवल वे `env.vc_*` फ़ंक्शन आयात कर सकता है जो docs/plugins.md में सूचीबद्ध हैं (प्लग-इन API स्तर 2), और कोई WASI, फ़ाइल या नेटवर्क नहीं
|
||||
@msg `api` is {_1}; this host implements plug-in API levels 1 to {API_LEVEL} `api` {_1} है; यह होस्ट प्लग-इन API स्तर 1 से {API_LEVEL} तक का समर्थन करता है
|
||||
@msg `paintOutput` may only be true `paintOutput` केवल true हो सकता है
|
||||
@msg `paintOutput` is only for a live effect (`kind` "effect") at `api` 2 `paintOutput` केवल `api` 2 पर लाइव इफ़ेक्ट (`kind` "effect") के लिए है
|
||||
@msg `grant` must be a list of permission names `grant` अनुमति नामों की सूची होनी चाहिए
|
||||
@msg `grant` names an unknown permission `{shown}` `grant` एक अज्ञात अनुमति `{shown}` बताता है
|
||||
|
||||
|
Can't render this file because it is too large.
|
@@ -5880,6 +5880,7 @@ axis Y Axis Y tengely
|
||||
@msg the module imports `env.{name}`, which a plug-in may use only at plug-in API level {PROGRESS_API} (`api` {PROGRESS_API}) and with the permission `{permission}` a modul importálja az `env.{name}` elemet, amelyet bővítmény csak {PROGRESS_API}. szintű bővítmény-API-val (`api` {PROGRESS_API}) és a(z) `{permission}` engedéllyel használhat
|
||||
@msg the module imports `{from}.{name}`, which the host doesn't offer: a plug-in may import only the `env.vc_*` functions that docs/plugins.md lists (plug-in API level 2), and no WASI, files or network a modul importálja a(z) `{from}.{name}` elemet, amelyet a gazdaprogram nem kínál: bővítmény csak a docs/plugins.md által felsorolt `env.vc_*` függvényeket importálhatja (2. szintű bővítmény-API), WASI-t, fájlokat és hálózatot nem
|
||||
@msg `api` is {_1}; this host implements plug-in API levels 1 to {API_LEVEL} az `api` értéke {_1}; ez a gazdaprogram az 1 és {API_LEVEL} közötti bővítmény-API-szinteket támogatja
|
||||
@msg `paintOutput` may only be true A `paintOutput` értéke csak true lehet
|
||||
@msg `paintOutput` is only for a live effect (`kind` "effect") at `api` 2 a `paintOutput` csak élő effektushoz (`kind` "effect") használható, `api` 2 mellett
|
||||
@msg `grant` must be a list of permission names a `grant` értékének engedélynevek listájának kell lennie
|
||||
@msg `grant` names an unknown permission `{shown}` a `grant` ismeretlen engedélyt nevez meg: `{shown}`
|
||||
|
||||
|
Can't render this file because it contains an unexpected character in line 2 and column 73.
|
@@ -5513,6 +5513,7 @@ axis Y Axis Asse Y
|
||||
@msg the module imports `env.{name}`, which a plug-in may use only at plug-in API level {PROGRESS_API} (`api` {PROGRESS_API}) and with the permission `{permission}` il modulo importa `env.{name}`, che un plug-in può usare solo al livello API dei plug-in {PROGRESS_API} (`api` {PROGRESS_API}) e con l’autorizzazione `{permission}`
|
||||
@msg the module imports `{from}.{name}`, which the host doesn't offer: a plug-in may import only the `env.vc_*` functions that docs/plugins.md lists (plug-in API level 2), and no WASI, files or network il modulo importa `{from}.{name}`, che l’host non offre: un plug-in può importare solo le funzioni `env.vc_*` elencate in docs/plugins.md (livello API dei plug-in 2), e nessun WASI, file o rete
|
||||
@msg `api` is {_1}; this host implements plug-in API levels 1 to {API_LEVEL} `api` è {_1}; questo host supporta i livelli API dei plug-in da 1 a {API_LEVEL}
|
||||
@msg `paintOutput` may only be true `paintOutput` può essere solo true
|
||||
@msg `paintOutput` is only for a live effect (`kind` "effect") at `api` 2 `paintOutput` vale solo per un effetto dinamico (`kind` "effect") con `api` 2
|
||||
@msg `grant` must be a list of permission names `grant` deve essere un elenco di nomi di autorizzazioni
|
||||
@msg `grant` names an unknown permission `{shown}` `grant` indica un’autorizzazione sconosciuta `{shown}`
|
||||
|
||||
|
Can't render this file because it contains an unexpected character in line 2 and column 73.
|
@@ -5578,6 +5578,7 @@ axis Y Axis Y 軸
|
||||
@msg the module imports `env.{name}`, which a plug-in may use only at plug-in API level {PROGRESS_API} (`api` {PROGRESS_API}) and with the permission `{permission}` モジュールが `env.{name}` をインポートしていますが、プラグインがこれを使用できるのはプラグイン API レベル {PROGRESS_API} (`api` {PROGRESS_API}) で権限 `{permission}` がある場合だけです
|
||||
@msg the module imports `{from}.{name}`, which the host doesn't offer: a plug-in may import only the `env.vc_*` functions that docs/plugins.md lists (plug-in API level 2), and no WASI, files or network モジュールがホストの提供しない `{from}.{name}` をインポートしています。プラグインがインポートできるのは docs/plugins.md に記載された `env.vc_*` 関数 (プラグイン API レベル 2) だけで、WASI、ファイル、ネットワークは使用できません
|
||||
@msg `api` is {_1}; this host implements plug-in API levels 1 to {API_LEVEL} `api` は {_1} です。このホストが対応するプラグイン API レベルは 1 から {API_LEVEL} です
|
||||
@msg `paintOutput` may only be true `paintOutput` には true のみ指定できます
|
||||
@msg `paintOutput` is only for a live effect (`kind` "effect") at `api` 2 `paintOutput` は `api` 2 のライブ効果 (`kind` "effect") 専用です
|
||||
@msg `grant` must be a list of permission names `grant` は権限名のリストにしてください
|
||||
@msg `grant` names an unknown permission `{shown}` `grant` に不明な権限 `{shown}` が含まれています
|
||||
|
||||
|
Can't render this file because it contains an unexpected character in line 2 and column 73.
|
@@ -5821,6 +5821,7 @@ axis Y Axis Y ღერძი
|
||||
@msg the module imports `env.{name}`, which a plug-in may use only at plug-in API level {PROGRESS_API} (`api` {PROGRESS_API}) and with the permission `{permission}` მოდულს შემოაქვს `env.{name}`, რომლის გამოყენებაც პლაგინს მხოლოდ პლაგინის API-ის დონეზე {PROGRESS_API} (`api` {PROGRESS_API}) და ნებართვით `{permission}` შეუძლია
|
||||
@msg the module imports `{from}.{name}`, which the host doesn't offer: a plug-in may import only the `env.vc_*` functions that docs/plugins.md lists (plug-in API level 2), and no WASI, files or network მოდულს შემოაქვს `{from}.{name}`, რომელსაც ჰოსტი არ გვთავაზობს: პლაგინს შეუძლია შემოიტანოს მხოლოდ docs/plugins.md-ში ჩამოთვლილი `env.vc_*` ფუნქციები (პლაგინის API-ის დონე 2) და არა WASI, ფაილები ან ქსელი
|
||||
@msg `api` is {_1}; this host implements plug-in API levels 1 to {API_LEVEL} `api` არის {_1}; ეს ჰოსტი პლაგინის API-ის დონეებს 1-დან {API_LEVEL}-მდე უჭერს მხარს
|
||||
@msg `paintOutput` may only be true `paintOutput` შეიძლება იყოს მხოლოდ true
|
||||
@msg `paintOutput` is only for a live effect (`kind` "effect") at `api` 2 `paintOutput` მხოლოდ ცოცხალი ეფექტისთვისაა (`kind` "effect") `api` 2-ზე
|
||||
@msg `grant` must be a list of permission names `grant` ნებართვების სახელების სია უნდა იყოს
|
||||
@msg `grant` names an unknown permission `{shown}` `grant` უცნობ ნებართვას ასახელებს: `{shown}`
|
||||
|
||||
|
Can't render this file because it is too large.
|
@@ -5474,6 +5474,7 @@ axis Y Axis Y축
|
||||
@msg the module imports `env.{name}`, which a plug-in may use only at plug-in API level {PROGRESS_API} (`api` {PROGRESS_API}) and with the permission `{permission}` 모듈이 `env.{name}`을(를) 가져오지만, 플러그인은 이를 플러그인 API 수준 {PROGRESS_API}(`api` {PROGRESS_API})에서 `{permission}` 권한이 있을 때만 사용할 수 있습니다
|
||||
@msg the module imports `{from}.{name}`, which the host doesn't offer: a plug-in may import only the `env.vc_*` functions that docs/plugins.md lists (plug-in API level 2), and no WASI, files or network 모듈이 호스트가 제공하지 않는 `{from}.{name}`을(를) 가져옵니다. 플러그인은 docs/plugins.md에 나열된 `env.vc_*` 함수(플러그인 API 수준 2)만 가져올 수 있으며 WASI, 파일, 네트워크는 사용할 수 없습니다
|
||||
@msg `api` is {_1}; this host implements plug-in API levels 1 to {API_LEVEL} `api`가 {_1}입니다. 이 호스트는 플러그인 API 수준 1부터 {API_LEVEL}까지 지원합니다
|
||||
@msg `paintOutput` may only be true `paintOutput`에는 true만 지정할 수 있습니다
|
||||
@msg `paintOutput` is only for a live effect (`kind` "effect") at `api` 2 `paintOutput`은 `api` 2의 라이브 효과(`kind` "effect")에만 쓸 수 있습니다
|
||||
@msg `grant` must be a list of permission names `grant`는 권한 이름 목록이어야 합니다
|
||||
@msg `grant` names an unknown permission `{shown}` `grant`에 알 수 없는 권한 `{shown}`이(가) 있습니다
|
||||
|
||||
|
Can't render this file because it contains an unexpected character in line 2 and column 73.
|
@@ -5750,6 +5750,7 @@ axis Y Axis Oś Y
|
||||
@msg the module imports `env.{name}`, which a plug-in may use only at plug-in API level {PROGRESS_API} (`api` {PROGRESS_API}) and with the permission `{permission}` moduł importuje `env.{name}`, którego wtyczka może używać tylko na poziomie API wtyczek {PROGRESS_API} (`api` {PROGRESS_API}) i z uprawnieniem `{permission}`
|
||||
@msg the module imports `{from}.{name}`, which the host doesn't offer: a plug-in may import only the `env.vc_*` functions that docs/plugins.md lists (plug-in API level 2), and no WASI, files or network moduł importuje `{from}.{name}`, którego host nie udostępnia: wtyczka może importować tylko funkcje `env.vc_*` wymienione w docs/plugins.md (poziom API wtyczek 2), bez WASI, plików i sieci
|
||||
@msg `api` is {_1}; this host implements plug-in API levels 1 to {API_LEVEL} `api` ma wartość {_1}; ten host obsługuje poziomy API wtyczek od 1 do {API_LEVEL}
|
||||
@msg `paintOutput` may only be true `paintOutput` może mieć tylko wartość true
|
||||
@msg `paintOutput` is only for a live effect (`kind` "effect") at `api` 2 `paintOutput` dotyczy tylko efektu na żywo (`kind` "effect") z `api` 2
|
||||
@msg `grant` must be a list of permission names `grant` musi być listą nazw uprawnień
|
||||
@msg `grant` names an unknown permission `{shown}` `grant` wymienia nieznane uprawnienie `{shown}`
|
||||
|
||||
|
Can't render this file because it contains an unexpected character in line 2 and column 73.
|
@@ -5812,6 +5812,7 @@ axis Y Axis Eixo Y
|
||||
@msg the module imports `env.{name}`, which a plug-in may use only at plug-in API level {PROGRESS_API} (`api` {PROGRESS_API}) and with the permission `{permission}` o módulo importa `env.{name}`, que um plug-in só pode usar no nível de API de plug-in {PROGRESS_API} (`api` {PROGRESS_API}) e com a permissão `{permission}`
|
||||
@msg the module imports `{from}.{name}`, which the host doesn't offer: a plug-in may import only the `env.vc_*` functions that docs/plugins.md lists (plug-in API level 2), and no WASI, files or network o módulo importa `{from}.{name}`, que o host não oferece: um plug-in só pode importar as funções `env.vc_*` listadas em docs/plugins.md (nível de API de plug-in 2), e nenhum WASI, arquivo ou rede
|
||||
@msg `api` is {_1}; this host implements plug-in API levels 1 to {API_LEVEL} `api` é {_1}; este host aceita os níveis de API de plug-in de 1 a {API_LEVEL}
|
||||
@msg `paintOutput` may only be true `paintOutput` só pode ser true
|
||||
@msg `paintOutput` is only for a live effect (`kind` "effect") at `api` 2 `paintOutput` é só para um efeito dinâmico (`kind` "effect") com `api` 2
|
||||
@msg `grant` must be a list of permission names `grant` deve ser uma lista de nomes de permissões
|
||||
@msg `grant` names an unknown permission `{shown}` `grant` cita uma permissão desconhecida `{shown}`
|
||||
|
||||
|
Can't render this file because it contains an unexpected character in line 6 and column 47.
|
@@ -5508,6 +5508,7 @@ axis Y Axis Ось Y
|
||||
@msg the module imports `env.{name}`, which a plug-in may use only at plug-in API level {PROGRESS_API} (`api` {PROGRESS_API}) and with the permission `{permission}` модуль импортирует `env.{name}`, который модуль может использовать только на уровне API модулей {PROGRESS_API} (`api` {PROGRESS_API}) и с разрешением `{permission}`
|
||||
@msg the module imports `{from}.{name}`, which the host doesn't offer: a plug-in may import only the `env.vc_*` functions that docs/plugins.md lists (plug-in API level 2), and no WASI, files or network модуль импортирует `{from}.{name}`, который хост не предоставляет: модуль может импортировать только функции `env.vc_*`, перечисленные в docs/plugins.md (уровень API модулей 2), без WASI, файлов и сети
|
||||
@msg `api` is {_1}; this host implements plug-in API levels 1 to {API_LEVEL} `api` равно {_1}; этот хост поддерживает уровни API модулей от 1 до {API_LEVEL}
|
||||
@msg `paintOutput` may only be true `paintOutput` может быть только true
|
||||
@msg `paintOutput` is only for a live effect (`kind` "effect") at `api` 2 `paintOutput` допустим только для динамического эффекта (`kind` "effect") с `api` 2
|
||||
@msg `grant` must be a list of permission names `grant` должен быть списком имён разрешений
|
||||
@msg `grant` names an unknown permission `{shown}` `grant` называет неизвестное разрешение `{shown}`
|
||||
|
||||
|
Can't render this file because it contains an unexpected character in line 2 and column 73.
|
@@ -5920,6 +5920,7 @@ axis Y Axis Y-axel
|
||||
@msg the module imports `env.{name}`, which a plug-in may use only at plug-in API level {PROGRESS_API} (`api` {PROGRESS_API}) and with the permission `{permission}` modulen importerar `env.{name}`, som ett plugin bara får använda på plugin-API-nivå {PROGRESS_API} (`api` {PROGRESS_API}) och med behörigheten `{permission}`
|
||||
@msg the module imports `{from}.{name}`, which the host doesn't offer: a plug-in may import only the `env.vc_*` functions that docs/plugins.md lists (plug-in API level 2), and no WASI, files or network modulen importerar `{from}.{name}`, som värden inte erbjuder: ett plugin får bara importera de `env.vc_*`-funktioner som docs/plugins.md listar (plugin-API-nivå 2), och ingen WASI, inga filer eller nätverk
|
||||
@msg `api` is {_1}; this host implements plug-in API levels 1 to {API_LEVEL} `api` är {_1}; den här värden stöder plugin-API-nivå 1 till {API_LEVEL}
|
||||
@msg `paintOutput` may only be true `paintOutput` får bara vara true
|
||||
@msg `paintOutput` is only for a live effect (`kind` "effect") at `api` 2 `paintOutput` gäller bara en liveeffekt (`kind` "effect") med `api` 2
|
||||
@msg `grant` must be a list of permission names `grant` måste vara en lista med behörighetsnamn
|
||||
@msg `grant` names an unknown permission `{shown}` `grant` anger en okänd behörighet `{shown}`
|
||||
|
||||
|
Can't render this file because it contains an unexpected character in line 5 and column 25.
|
@@ -5854,6 +5854,7 @@ axis Y Axis Y ekseni
|
||||
@msg the module imports `env.{name}`, which a plug-in may use only at plug-in API level {PROGRESS_API} (`api` {PROGRESS_API}) and with the permission `{permission}` modül `env.{name}` öğesini içe aktarıyor; bir eklenti bunu yalnızca eklenti API düzeyi {PROGRESS_API} (`api` {PROGRESS_API}) ile ve `{permission}` izniyle kullanabilir
|
||||
@msg the module imports `{from}.{name}`, which the host doesn't offer: a plug-in may import only the `env.vc_*` functions that docs/plugins.md lists (plug-in API level 2), and no WASI, files or network modül, ana bilgisayarın sunmadığı `{from}.{name}` öğesini içe aktarıyor: bir eklenti yalnızca docs/plugins.md dosyasında listelenen `env.vc_*` işlevlerini (eklenti API düzeyi 2) içe aktarabilir; WASI, dosya veya ağ kullanamaz
|
||||
@msg `api` is {_1}; this host implements plug-in API levels 1 to {API_LEVEL} `api` değeri {_1}; bu ana bilgisayar 1 ile {API_LEVEL} arasındaki eklenti API düzeylerini destekler
|
||||
@msg `paintOutput` may only be true `paintOutput` yalnızca true olabilir
|
||||
@msg `paintOutput` is only for a live effect (`kind` "effect") at `api` 2 `paintOutput` yalnızca `api` 2 düzeyindeki canlı efekt (`kind` "effect") içindir
|
||||
@msg `grant` must be a list of permission names `grant` izin adlarından oluşan bir liste olmalıdır
|
||||
@msg `grant` names an unknown permission `{shown}` `grant` bilinmeyen bir izin adlandırıyor: `{shown}`
|
||||
|
||||
|
Can't render this file because it contains an unexpected character in line 5 and column 25.
|
@@ -5493,6 +5493,7 @@ axis Y Axis Вісь Y
|
||||
@msg the module imports `env.{name}`, which a plug-in may use only at plug-in API level {PROGRESS_API} (`api` {PROGRESS_API}) and with the permission `{permission}` модуль імпортує `env.{name}`, який модуль може використовувати лише на рівні API модулів {PROGRESS_API} (`api` {PROGRESS_API}) і з дозволом `{permission}`
|
||||
@msg the module imports `{from}.{name}`, which the host doesn't offer: a plug-in may import only the `env.vc_*` functions that docs/plugins.md lists (plug-in API level 2), and no WASI, files or network модуль імпортує `{from}.{name}`, який хост не надає: модуль може імпортувати лише функції `env.vc_*`, перелічені в docs/plugins.md (рівень API модулів 2), без WASI, файлів і мережі
|
||||
@msg `api` is {_1}; this host implements plug-in API levels 1 to {API_LEVEL} `api` дорівнює {_1}; цей хост підтримує рівні API модулів від 1 до {API_LEVEL}
|
||||
@msg `paintOutput` may only be true `paintOutput` може бути лише true
|
||||
@msg `paintOutput` is only for a live effect (`kind` "effect") at `api` 2 `paintOutput` дозволено лише для динамічного ефекту (`kind` "effect") з `api` 2
|
||||
@msg `grant` must be a list of permission names `grant` має бути списком назв дозволів
|
||||
@msg `grant` names an unknown permission `{shown}` `grant` називає невідомий дозвіл `{shown}`
|
||||
|
||||
|
Can't render this file because it contains an unexpected character in line 182 and column 5.
|
@@ -5494,6 +5494,7 @@ axis Y Axis Trục Y
|
||||
@msg the module imports `env.{name}`, which a plug-in may use only at plug-in API level {PROGRESS_API} (`api` {PROGRESS_API}) and with the permission `{permission}` mô-đun nhập `env.{name}`, thứ mà plug-in chỉ được dùng ở API plug-in cấp {PROGRESS_API} (`api` {PROGRESS_API}) và với quyền `{permission}`
|
||||
@msg the module imports `{from}.{name}`, which the host doesn't offer: a plug-in may import only the `env.vc_*` functions that docs/plugins.md lists (plug-in API level 2), and no WASI, files or network mô-đun nhập `{from}.{name}`, thứ mà máy chủ không cung cấp: plug-in chỉ được nhập các hàm `env.vc_*` mà docs/plugins.md liệt kê (API plug-in cấp 2), không có WASI, tệp hay mạng
|
||||
@msg `api` is {_1}; this host implements plug-in API levels 1 to {API_LEVEL} `api` là {_1}; máy chủ này hỗ trợ các mức API plug-in từ 1 đến {API_LEVEL}
|
||||
@msg `paintOutput` may only be true `paintOutput` chỉ có thể là true
|
||||
@msg `paintOutput` is only for a live effect (`kind` "effect") at `api` 2 `paintOutput` chỉ dành cho hiệu ứng trực tiếp (`kind` "effect") ở `api` 2
|
||||
@msg `grant` must be a list of permission names `grant` phải là danh sách tên quyền
|
||||
@msg `grant` names an unknown permission `{shown}` `grant` nêu một quyền không xác định `{shown}`
|
||||
|
||||
|
Can't render this file because it contains an unexpected character in line 204 and column 5.
|
@@ -5735,6 +5735,7 @@ axis Y Axis Y 轴
|
||||
@msg the module imports `env.{name}`, which a plug-in may use only at plug-in API level {PROGRESS_API} (`api` {PROGRESS_API}) and with the permission `{permission}` 模块导入了 `env.{name}`,增效工具只有在增效工具 API 级别 {PROGRESS_API}(`api` {PROGRESS_API})且具有权限 `{permission}` 时才能使用它
|
||||
@msg the module imports `{from}.{name}`, which the host doesn't offer: a plug-in may import only the `env.vc_*` functions that docs/plugins.md lists (plug-in API level 2), and no WASI, files or network 模块导入了宿主不提供的 `{from}.{name}`:增效工具只能导入 docs/plugins.md 列出的 `env.vc_*` 函数(增效工具 API 级别 2),不能使用 WASI、文件或网络
|
||||
@msg `api` is {_1}; this host implements plug-in API levels 1 to {API_LEVEL} `api` 为 {_1};此主机支持的增效工具 API 级别为 1 到 {API_LEVEL}
|
||||
@msg `paintOutput` may only be true `paintOutput` 只能为 true
|
||||
@msg `paintOutput` is only for a live effect (`kind` "effect") at `api` 2 `paintOutput` 仅适用于 `api` 2 的实时效果 (`kind` "effect")
|
||||
@msg `grant` must be a list of permission names `grant` 必须是权限名称的列表
|
||||
@msg `grant` names an unknown permission `{shown}` `grant` 包含未知权限 `{shown}`
|
||||
|
||||
|
Can't render this file because it contains an unexpected character in line 2 and column 73.
|
@@ -5531,6 +5531,7 @@ axis Y Axis Y 軸
|
||||
@msg the module imports `env.{name}`, which a plug-in may use only at plug-in API level {PROGRESS_API} (`api` {PROGRESS_API}) and with the permission `{permission}` 模組匯入了 `env.{name}`,增效模組只有在增效模組 API 層級 {PROGRESS_API}(`api` {PROGRESS_API})且具有權限 `{permission}` 時才能使用它
|
||||
@msg the module imports `{from}.{name}`, which the host doesn't offer: a plug-in may import only the `env.vc_*` functions that docs/plugins.md lists (plug-in API level 2), and no WASI, files or network 模組匯入了主機未提供的 `{from}.{name}`:增效模組只能匯入 docs/plugins.md 列出的 `env.vc_*` 函式(增效模組 API 層級 2),不能使用 WASI、檔案或網路
|
||||
@msg `api` is {_1}; this host implements plug-in API levels 1 to {API_LEVEL} `api` 為 {_1};此主機支援的增效模組 API 層級為 1 到 {API_LEVEL}
|
||||
@msg `paintOutput` may only be true `paintOutput` 只能為 true
|
||||
@msg `paintOutput` is only for a live effect (`kind` "effect") at `api` 2 `paintOutput` 僅適用於 `api` 2 的即時效果 (`kind` "effect")
|
||||
@msg `grant` must be a list of permission names `grant` 必須是權限名稱的清單
|
||||
@msg `grant` names an unknown permission `{shown}` `grant` 包含未知權限 `{shown}`
|
||||
|
||||
|
Can't render this file because it contains an unexpected character in line 6 and column 47.
|
+1
-1
@@ -183,7 +183,7 @@ with an error rather than a pause the host resumes, and the run stopped with mos
|
||||
Drawing evaluates effects often, so live-effect results are cached by plug-in installation, parameters, input
|
||||
geometry, fill rule, reference box and the paints the effect is given: a plug-in runs again only when one of them
|
||||
changes. Failures are cached too. The swatches and patterns a painted result names are checked against the document
|
||||
each time it is drawn.
|
||||
each time it is drawn, and a paint linked to a global swatch is drawn in that swatch's current color at its own tint.
|
||||
|
||||
## ABI v1
|
||||
|
||||
|
||||
Reference in New Issue
Block a user